0

我有一个 mdoule,我在其中创建一个数据库连接和一个运行查询的函数。我想在另一个模块中使用这个查询的输出。我该怎么做呢?

该查询应该返回键值对(hello:world)中的值。但是,每次我尝试在另一个模块中使用该变量时,我都会得到“true”而不是“world”。

我的代码在这里 https://github.com/rishavs/RedisDbConnect

我想从 app.js 调用 getValue 函数,也许还有 console.log(db.getValue()) 的输出。

4

1 回答 1

1

您不能像从同步一样从异步函数返回值。您需要使用回调方式。像这样修改你的代码:

获取值函数:

var getValue = function(cb) {
    dbConnection.get("hello", function (err, reply) {
        var val = reply ? reply.toString() : null;
        cb(err, val);
    });
};

控制器:

app.get('/json', function(req, res, next) {
    res.contentType('application/json');
    db.getValue(function(err, val) {
        if (err) return next(err);
        res.send(val);  
    });
});
于 2013-01-20T13:23:55.433 回答