0

ノード、バックボーン、mongodb を使用した Web アプリの構築に関する本を読んでいます。私は本からサンプルを入手し、コードスニペットに遭遇しました。それは私を混乱させました.

  var login = function(email, password, callback) {
    var shaSum = crypto.createHash('sha256');
    shaSum.update(password);
    Account.findOne({email:email,password:shaSum.digest('hex')},function(err,doc){
      callback(null!=doc);
    });
  };  

コールバック関数 null!=doc の引数を見てください。javascript では doc と等しくない null を意味することはわかっていますが、どうしてそれを引数として使用できるのでしょうか。

4

2 に答える 2

4

null!=docブール値として評価され、結果が に渡されるcallback、それだけです。

これは、次のものと同じです。

var docIsNull = null!=doc;
callback(docIsNull);

特定のメソッドの結果はわかりませんが、値があったかどうかに関係なく、コールバックにtrueorを提供しているだけです。falsedocnull

だった場合、その特定のパスワードを持つ特定の電子メールが見つからなかったことを意味するとdoc思います。nullしたがって、 を呼び出すときはlogin、おそらく次のように使用します。

login("some email", "some password", function (authenticated) {
    if (authenticated) {
        // email/password found and matched
    } else {
        // no match
    }
});
于 2013-05-11T18:37:45.190 に答える