2017-06-11 3 views
0

私はmongooseを使用してデータベースから人物データを取得しています。これは私が使用するコードである:Mongoose Model Objectが異常に動作する

return new Promise((resolve, reject) => { 
    Person.findOne({}, (err, result) => { 
     if(err) { 
     reject(err); 
     } else { 
     console.log(result); 
     console.log(result.firstname); 
     console.log(result.githubLink); 
     resolve(result); 
     } 
    }); 
    }); 

これはにconsole.log(結果)から出力

{ _id: 593c35e6ed9581db3ef85d75, 
firstname: 'MyName', 
lastname: 'MyLastName', 
jobtitle: 'Web Developer', 
email: '[email protected]', 
githubLink: 'https://github.com/myGithub' } 

であり、これはにconsole.log(result.firstname)からの結果です。およびconsole.log(result.githubLink);

MyName 
undefined 

は何とかこの結果をめちゃくちゃにこの約束ですか?結果だけを記録すると私のgithubのリンクが表示され、リンクを記録するとundefinedと表示されるので、本当に奇妙です。

+0

ていますどこにも何のタイプミスもないのは確かですか? –

+0

私はconsole.log(結果)の出力から "githubLink"をコピー&ペーストしました。私はこのコードブロックを30分間スターミングしています。私はそれがtypoだとは思わない – Frostbch

+1

ロギングを行っているコードの実際の行をコピーし、あなたの質問にスキーマも表示します。 –

答えて

2

モデルに対して定義されたスキーマに実際に存在しないフィールドがデータベースオブジェクトに存在する場合、それらは引き続き「ログ」しますが、通常はプロパティの値にアクセスできません。

あなたが本当にあなたのスキーマで適切に項目を定義したい、多くの場合

githubLink: String 

それとも、あなたが意図的.get()メソッドを使用して定義しないプロパティにアクセスすることができます

result.get('githubLink') 
関連する問題