168

nextnode.js で多くの使用が見られます。

それは何ですか、それはどこから来たのですか?それは何をするためのものか?クライアント側で使用できますか?

申し訳ありませんが、たとえばここで使用されています: http://dailyjs.com/2010/12/06/node-tutorial-5/

loadUser 関数を探します。

4

3 に答える 3

128

これは、Node.js 制御フロー コードの変数命名規則のようです。次に実行する関数への参照がコールバックに渡され、実行が完了すると開始されます。

たとえば、次のコード サンプルを参照してください。

あなたが投稿した例を見てみましょう:

function loadUser(req, res, next) {
  if (req.session.user_id) {
    User.findById(req.session.user_id, function(user) {
      if (user) {
        req.currentUser = user;
        return next();
      } else {
        res.redirect('/sessions/new');
      }
    });
  } else {
    res.redirect('/sessions/new');
  }
}

app.get('/documents.:format?', loadUser, function(req, res) {
  // ...
});

関数は、 name にバインドされている 3 番目のloadUser引数に関数を想定していますnext。これは通常の関数パラメーターです。次に実行するアクションへの参照を保持し、loadUser(ユーザーが見つからない場合を除いて) 完了すると呼び出されます。

nextこの例の名前に特別なことは何もありません。どんな名前でもかまいませんでした。

于 2011-03-21T22:42:32.957 に答える
44

これは、アクションのシリアル実行が必要な状況でコールバックを渡すときに使用される命名規則です。たとえば、ディレクトリのスキャン -> ファイル データの読み取り -> データで何かを実行します。これは、コールバックを深くネストするより優先されます。Tim Caswell のHowToNodeブログの次の記事の最初の 3 つのセクションでは、この概要がよく説明されています。

http://howtonode.org/control-flow

その投稿の 2 番目の部分の順次アクションのセクションも参照してください。

http://howtonode.org/control-flow-part-ii

于 2011-03-21T22:50:09.807 に答える