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模块,要怎么写?

node.js mongodb JavaScript

银白的gouf 9 years, 5 months ago

因为 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);
    });
};

co thunkify 没用过。

爬出的法老 answered 9 years, 5 months ago

Your Answer