sql >> データベース >  >> NoSQL >> MongoDB

ノード関数で解決エラーを返します

    フェッチされたユーザーをquery.execに正しく渡していないため 。

    あなたがする必要がある:

    var Users  = require('../models/users-model.js');
    
    function usernametoid(id) {
        return new Promise( function (resolve, reject) {
            Users.findOne({ username : id }).then( function(user){
              //If you use lodash you can do _.isNull(user)
              if(user == null){
                return reject({error : 'User not found'});
              }
    
              user.exec(function(userdata, error) {
                  if(userdata){
                    return resolve(userdata);
                  } 
                  if(error){
                     return reject({error : 'Error while executing query'});
                  }
               });
            });
        });
    }
    

    Users Modelをインポートする理由がよくわかりません そのように。 Nodeはないと思います そのようにフェッチできるようになります。

    そして、mongooseが必要です server.js

    拒否をキャッチするには、次のコードが必要です:

    UserFactory.userNameToId(id).then( function(response){
      if(response.error){
        console.log('error '+response.error);
      }
      if(response){
        console.log('Got response '+response);
      }
    });
    



    1. MongoDB / PHPは、ドキュメント内の特定の配列アイテムを削除します

    2. MongoDBプロジェクションで文字列を数値に変換する

    3. 異なるサーバー上のmongoデータベースを同期します

    4. MongoDBとの関連性による並べ替え