nodejs学习
1、路由
框架生成的文件内,路由的使用,也就是前端调用的接口路径
index.js内的render是页面的渲染,jade文件编写的前端页面,在views中,感兴趣可以=====>进一步了解
2、写一个get方法的登陆接口试一下
npm start 启动项目,通过路由来模拟get方法,操作数据库
- 路由不生效,重启项目尝试,
- 多次操作数据库,一次生效,其余报错=>在操作完数据库后,不要 connection.end() 关闭数据库
// req.query : 处理 get 请求,获取 get 请求参数
// req.params : 处理 /:xxx 形式的 get 或 post 请求,获取请求参数
// req.body : 处理 post 请求,获取 post 请求体
// req.param() : 处理 get 和 post 请求,但查找优先级由高到低为 req.params→req.body→req.query
router.get('/login',async (req,res,next)=>{
console.log(req['query']);
let {name,password} = req['query']
if(!name || !password){
res.send(MError('账号信息不存在'))
return
}
const result = await db.select(`SELECT * FROM user WHERE name = '${name}'`)
if(password=== result[0].password){
res.send(Success(result));
return
}else{
res.send(MError('用户名或密码错误'))
return
}
})
3、返回规范
utils/result.js
// 规范返回
/**
* 描述操作成功
* @date 2021-12-07
* @param {any} list = []
* @param {any} msg = '操作成功'
* @returns {any}
*/
exports.Success = (list = [] ,msg = '操作成功') => {
return {
msg,
code: 200,
list
}
}
// 参数错误,请检查传递的参数
exports.MError = ( msg = '参数等发生错误') => {
return {
msg,
code: 500
}
}
4、注册接口
router.post('/register',async (req,res,next)=>{
let {name,password} = req['body']
if(!name || !password){
res.send(MError('用户名或密码未输入'))
return
}
const result = await db.select(`SELECT * FROM user WHERE name = '${name}'`)
if(result){
res.send(MError('该用户已存在,请修改用户名再注册'))
return
}else{
const lastres = await db.insert('user',{name,password})
if(lastres){
res.send(Success(lastres));
}else{
res.send(MError('注册失败,请再次尝试'))
return
}
}
})