Javascript 如何在另一个模块中使用模块功能的输出
我有一个mdoule,在这里我创建了一个db连接和一个运行查询的函数。 我想在另一个模块中使用此查询的输出。我该怎么做 查询应该从键值对(hello:world)返回值。 然而,每次我尝试在另一个模块中使用该变量时,结果都是“true”而不是“world” 我的密码在这里Javascript 如何在另一个模块中使用模块功能的输出,javascript,node.js,redis,Javascript,Node.js,Redis,我有一个mdoule,在这里我创建了一个db连接和一个运行查询的函数。 我想在另一个模块中使用此查询的输出。我该怎么做 查询应该从键值对(hello:world)返回值。 然而,每次我尝试在另一个模块中使用该变量时,结果都是“true”而不是“world” 我的密码在这里 我想从app.js调用getValue函数,可能还想从console.log(db.getValue())调用输出。您不能像从sync一样从异步函数返回值。您需要使用回调方式。按如下方式修改代码: getValue函数: v
我想从app.js调用getValue函数,可能还想从console.log(db.getValue())调用输出。您不能像从sync一样从异步函数返回值。您需要使用回调方式。按如下方式修改代码: getValue函数:
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);
});
});
谢谢因为我对编码还不熟悉,所以我试图避免回调,但我想是时候开始了。如果你的解决方案对我有效,我会向你汇报。顺便问一下,这条线是做什么的?“var val=reply?reply.toString():null;“我怀疑”?“是OR。“:null;”部分如何?是否为“如果reply.toString为null,则返回reply”?这是
var val的缩写等价物;if(reply){val=reply.toString();}else{val=null}
这里需要防止回复返回为null
或undefined
时出错。