使用streamlinejs和nodejsexpression框架
我是“nodejs”世界的新手。所以想要探索各种技术,涉及的框架,我正在build立一个简单的用户职位系统(用户张贴其他人看到post)由redis支持。但是我有一些困难,从redis服务器获取数据,我需要从redis服务器执行3个查询来显示posts.在这种情况下,每次redis调用后都必须使用nestedcallback。所以我想用stream线.js来简化callback。但是即使在我使用npm install streamline -g
和require('streamline').register();
后,我也无法使它工作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
扩展名的另一个文件中。
简化stream程只允许您在主脚本的顶层进行asynchronous调用(带有_
参数的调用)。 在这里,您的简化代码位于主脚本所需的模块中。 所以你需要把它放在一个函数里面。 就像是:
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
是同步的。 所以你不能把asynchronous代码放在另一个脚本所需的脚本的顶层。