我面临奇怪的回调问题。我期望结果返回一些东西,但没有。有人发现我的错误吗?
型号
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
,我不明白为什么会调用它。
如果你想调用它,就调用它。
updateStatus
的 findOneAndUpdate
语句应该是:
Order.findOneAndUpdate(
{"_id": order_id},
{$set: {order_status: order_status}},
{new: true},
callback
);
关于javascript - node.js 回调奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361997/