我正在学习 Node ,但我一直在解决为什么回调总是返回错误
这是我的代码
todo.createTask(req,(err,resp)=>{
if(err){
res.status(400).send(err);
}else{
res.status(200).send(resp);
}
});
<小时/>
var createTask(req,callBack) =>{
var model = new models({
.
.
.
.
});
model.save().then((doc)=>{
callBack(doc);
}).catch((err)={
callBack(err);
})
}
我从 mongo 收到了成功的消息,其中包含我用于错误的 400 状态代码。
请帮我找出我做错了什么。我的目的是在成功时响应状态代码 200,在发生错误时响应状态代码 400。
最佳答案
有两种情况会调用回调:
callBack(doc);
callBack(err);
…在每个中,您传递一个参数。它被分配给第一个参数。
(err,resp)=>{
因此,在每种情况下,您都将真实值的某物分配给err
,并将无分配给resp
。
然后,您的 if(err){
从第一个参数中获取真实值,并按照您的指示执行操作。
如果您想避免这种情况,您需要将 false 值传递给 err
并将您关心的值传递给 resp
。
关于javascript - 为什么我的回调函数总是返回错误而不是响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53161985/