簡體   English   中英

node.js回調異常行為

[英]node.js callback strange behavior

我面臨奇怪的回調問題。 我期望結果返回一些東西,但是沒有。 有人發現我的錯誤嗎?

楷模

module.exports.updateStatus = function(updateObj, callback){
    var order_id = updateObj.order_id,
    order_status = updateObj.order_status;
    Order.findOneAndUpdate({"_id": order_id}, {$set: {order_status: order_status}},{new: true});

我的路線

var Orders = require('../models/orders');
router.post('/update_status',function(req,res,next){
  var updateObj = {
    'order_status':req.body.order_status,
    'order_id':req.body.order_id
  }
  Orders.updateStatus(updateObj,function(err,result){
    console.log(result) // nothing been return here
  })

})

我檢查我的數據庫,更新實際上工作正常。 我做

module.exports.updateStatus = function(updateObj, callback){
        var order_id = updateObj.order_id,
        order_status = updateObj.order_status;
        Order.findOneAndUpdate({"_id": order_id}, {$set: {order_status: order_status}},{new: true},function(err,result){
console.log(result)// it work here
});

您永遠不會在updateStatus調用callback ,我不知道為什么會調用它。

如果要調用它,請調用它。

updateStatusfindOneAndUpdate語句應為:

Order.findOneAndUpdate(
    {"_id": order_id},
    {$set: {order_status: order_status}},
    {new: true},
    callback
);

您必須在updateStatus函數中調用回調

exports.updateStatus = function (updateObj, callback) {
    Order.findOneAndUpdate(
        {"_id": updateObj.order_id},
        {$set: {order_status: updateObj.order_status}},
        {new: true},
        callback
    );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM