使用Koa2+koa-router, router.post(’/signin’,async(ctx,next) => { let body= ctx.request.body; let name = body.name,password = body.password; //使用mongolass验证密码操作 userModel.getUserByName(user).then({ //这里进行后续操作 if(!user){ //省略处理代码 return ctx.redirect(’/signin’); } //登录成功 //bala bala ctx.redirect(’/index’); }).catch(e => console.log(e.message)); }
gooooooole了好久,觉得是二次回调函数的问题,菜鸟,不知道怎么解决。
router.post(’/signin’,async (ctx,next) => { let body= ctx.request.body; let name = body.name,password = body.password; //使用mongolass验证密码操作 let user = await userModel.getUserByName(name,password); //这里进行后续操作 if(!user){ //省略处理代码 return ctx.redirect(’/signin’); } //登录成功 //bala bala ctx.redirect(’/index’); } 你只贴了代码,不知道你想问什么
@zhhb 当登录成功(失败)后会报错(404 not found),Can’t set headers after they are sent.(二次响应)。请教一下怎么解决。
@995270418L 调用ctx.redirect(’/index’)请求的时候
@zhhb 已经解决了,使用async函数不能再使用 next,需要同步更换成await函数表达.
@995270418L next其实返回的是promise,所以可以await next()的,看你怎么样