多个响应?"/>
如何使用koa ctx正文进行多个响应?
我是koa和postgresql的新用户。我创建了一个用户登录api,但出现404 not found错误。我的查询和检查工作正常,如在控制台上检查的一样,但ctx.body无法工作。我如何使用Koa ctx.body处理多个响应?不知道为什么ctx.body无法正常工作。我们如何解决这个问题?希望你理解我的问题。
router.post('/userLogin', async (ctx) => {
var email = ctx.request.body.email;
var password = ctx.request.body.password;
if (
!email ||
!password
) {
ctx.response.status = 400;
ctx.body = {
status: 'error',
message: 'Please fill all the fields'
}
} else {
await ctx.app.pool.query("SELECT * FROM users WHERE email = $1",
[`${email}`],
async (err, result) => {
if(err){
console.log(err);
throw err;
}
if (result) {
await bcryptpare(password, result.rows[0].password).then(function (res) {
if (res === true) {
ctx.body = {
status: 200,
message: "User login successfully",
data: result.rows[0],
};
}else{
ctx.body = {
status: 400,
message: "Incorrect password",
}
}
});
}else{
ctx.body = {
status: 400,
message: "Invalid email",
}
}
});
}
});
回答如下:关于使用ctx.body
进行多次回复,请参阅您的问题:您可以多次设置ctx.body
,但响应中仅使用最后一个。
例如:
ctx.body = 'Hello'
ctx.body = 'World'
此示例将以World
响应。
您可以连接值以使它们作为一个字符串/对象发送,也可以在控制读取流缓冲区的地方使用流。检查https://stackoverflow/a/51616217/1380486和https://github/koajs/koa/blob/master/docs/api/response.md#responsebody-1中的文档。
更多推荐
如何使用koa ctx正文进行多个响应?
发布评论