Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js User.save().then((doc)=>;{..})、catch((err)=>;{})和save((err,doc)=>;{..})之间有什么区别_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js User.save().then((doc)=>;{..})、catch((err)=>;{})和save((err,doc)=>;{..})之间有什么区别

Node.js User.save().then((doc)=>;{..})、catch((err)=>;{})和save((err,doc)=>;{..})之间有什么区别,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,及 我也在想同样的问题。我发现: 从Functional的角度来看,如果我们除了使用第二种语法将错误发送到客户端的res.send(err)之外,这两个函数都是等效的,并且做的事情是相同的:继续对MongooseModel.FindOne()函数进行异步调用,并捕获错误 从技术角度来看,第一种语法使用a来执行此操作,第二种语法使用a。一种使用回调,另一种承诺在完成后执行操作。第一种方法是传统方法,它包括回调函数,并通过“错误优先回调”捕获错误。第二个方法使用Promises概念,所以find是成


我也在想同样的问题。我发现:

从Functional的角度来看,如果我们除了使用第二种语法将错误发送到客户端的
res.send(err)
之外,这两个函数都是等效的,并且做的事情是相同的:继续对Mongoose
Model.FindOne()
函数进行异步调用,并捕获错误


从技术角度来看,第一种语法使用a来执行此操作,第二种语法使用a。

一种使用回调,另一种承诺在完成后执行操作。第一种方法是传统方法,它包括回调函数,并通过“错误优先回调”捕获错误。第二个方法使用Promises概念,所以find是成功的,它将转到then语句,假设发生任何错误,它将转到catch块。
User.findOne({ id: userId }, function(err, result) {
      if (err) throw err;
      .....
    });
User.findOne({ id: userId })
.then((result)=>{
   ......
})
.catch((err)=>res.send(err));