javascript - nodejs 中如何获取mongoose保存的结果反馈?
巴扎黑
巴扎黑 2017-04-10 15:51:21
[JavaScript讨论组]

目的是想写一个函数单独保存一个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模块,要怎么写?

巴扎黑
巴扎黑

全部回复(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 没用过。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号