javascript - 为什么我的回调函数总是返回错误而不是响应

标签 javascript node.js mongodb callback

我正在学习 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/

相关文章:

javascript - 为什么在客户端上我看到我传递带逗号的字符串,但在服务器上传递带点的字符串?

javascript - Express 中的路由参数为空

mongodb - Spring + MongoDB 同时使用非 react 性和 react 性存储库

mongodb - MongoDB 中的只写集合

javascript - 更改 jquery 中的变量时出现问题

javascript - 客户关系管理 2011 :How to hide the ribbons according to security role using javascript?

javascript - 嵌套回调异步运行

node.js - 在 NodeJS 中,如果我不响应请求,我的服务器会不会有什么不好的事情发生?

node.js - 将集合中文档的属性减去不同集合中另一个文档的属性,并返回差值数组

javascript - 为什么内置函数没有原型(prototype)属性?