我是'nodejs'领域的新手。因此,想要探索各种技术,涉及的框架,我正在建立一个由redis支持的简单的用户发布系统(用户向其他人发布一些其他人看到的帖子)。大多数教程。但是我在从Redis服务器获取数据时遇到了一些困难,我需要从Redis服务器进行3次查询才能显示帖子。在这种情况下,每次调用Redis后都必须使用嵌套的回调。所以我想使用流线型.js简化了回调。但是即使在调用前使用npm install streamline -g
和require('streamline').register();
之后,我也无法使其正常工作
var keys=['comments','timestamp','id'];
var posts=[];
for(var key in keys){
var post=client.sort("posts",'by','nosort',"get","POST:*->"+keys[key],_);
posts.push(post);
}
我收到错误ReferenceError:_未定义。
请指出正确的方向,或指出我可能错过的任何资源。
最佳答案
require('streamline').register()
调用应位于启动应用程序的文件中(扩展名为.js
)。流线型代码应位于主脚本要求的另一个带有._js
扩展名的文件中。
Streamline仅允许您在主脚本的顶层进行异步调用(使用_
参数进行的调用)。在这里,您的精简代码位于主脚本所需的模块中。因此,您需要将其放入函数中。就像是:
exports.myFunction = function(_) {
var keys=['comments','timestamp','id'];
var posts=[];
for(var key in keys){
var post=client.sort("posts",'by','nosort',"get","POST:*->"+keys[key],_);
posts.push(post);
}
}
这是因为
require
是同步的。因此,您不能将异步代码放在另一个脚本所需的脚本的顶层。关于node.js - 使用streamlinejs和nodejs express框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16432468/