nodejs 中如何获取mongoose保存的结果反馈?

目的是想写一个函数单独保存一个model,怎么返回save里面的反馈?

var mongoOp = require('../models/basket');

exports.insert = function (pname, pprice, edate) {
    console.log(pname + ' ' + pprice);
    var db = new mongoOp();
    var response = {};
    db.pname = pname;
    db.pprice = pprice;
    db.edate = edate;
    db.save(function(err) {
        if (err) {
            response = {
                "error": true,
                "message": "Error adding data"
            };
        } else {
            response = {
                "error": false,
                "message": "Data added"
            };
        }
    });
    return err;
};

如果用co和thunkify模块,要怎么写?

阅读 3.7k
1 个回答

因为 db.save() 是异步的,所以,你的 return err 返回的是 undefined。这里正确的办法是使用回调函数,如下:

exports.insert = function(pname, pprice, edate, cb) {
    // ...
    db.save(function(err) {
        if (err) {
            response = {
                "error": true,
                "message": "Error adding data"
            };
        } else {
            response = {
                "error": false,
                "message": "Data added"
            };
        }
        return cb(err, response);
    });
};

cothunkify 没用过。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题