使用streamlinejs和nodejsexpression框架

我是“nodejs”世界的新手。所以想要探索各种技术,涉及的框架,我正在build立一个简单的用户职位系统(用户张贴其他人看到post)由redis支持。但是我有一些困难,从redis服务器获取数据,我需要从redis服务器执行3个查询来显示posts.在这种情况下,每次redis调用后都必须使用nestedcallback。所以我想用stream线.js来简化callback。但是即使在我使用npm install streamline -grequire('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代码放在另一个脚本所需的脚本的顶层。