mongodb - NodeJS中如何获取回调函数的返回值

标签 mongodb node.js mongoose

下面的代码使用mongoskin通过nodejs访问mongodb。 如何从外部访问回调函数的返回值?

app.get('/', function(req, res) {

    var ret = db.collection('counters').findAndModify(
        {_id: 'messagetransaction'},
        [],
        {$inc : {next: 1}},
        true,
        true,
        function(err, counter) {
            if (err) { 
                throw err;
            }else{
                console.log(counter.next);
                return counter.next;
            }       
        }
    );

});


console.log(ret);

我收到如下错误,

ReferenceError: ret is not defined

请帮我解决这个问题!

最佳答案

问题是你永远不知道回调何时会触发;它是异步的。因此,您不想等待结果。您应该做的是调用一个函数,传递该值,而不是返回一个值,并且该函数应该执行您希望它对结果执行的操作。

关于mongodb - NodeJS中如何获取回调函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7348794/

相关文章:

javascript - 过期连接之外的松散请求

node.js - 在 sequelize JS 和 postgres 中使用大整数

node.js - Sails.js - 将 api 函数移动到共享文件

node.js - Mongoose 使用父字段生成子字段

node.js - Mongoose - 枚举字符串数组

MongoDB:无法规范化查询:BadValue 未知运算符

node.js - Mongoose-如何创建具有默认值的集合?

javascript - 我如何使用 Mongoose 确定用户是否喜欢帖子

node.js - 尽管 MongoDB 中存在集合,Mongoose 显示空对象

python - Pymongo - 不允许修改 _id