1

私は「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: _ is not defined が表示されます。

正しい方向を示してください。または、見逃した可能性のあるリソースを示してください。

4

1 に答える 1

1

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同期のためです。そのため、別のスクリプトが必要とするスクリプトの最上位に非同期コードを配置することはできません。

于 2013-05-10T07:09:47.877 に答える