2016-10-31 6 views
0

私はreq.userオブジェクト上のblockedUsersという配列にアクセスしようとしていますが、未定義に戻ってきます。 req.userには他の配列とキーと値のペアがあり、問題なくアクセスできます。req.user上のオブジェクト

console.log(req.user);た場合は、その後、私は、次を得る:

{ _id: 57ebbdedf814b103c81e0b3d, 

    // ... loads of other key:value pairs ... 

    lastLogin: 1477934742883, 
    __v: 0, 
    blockedUsers: [ '57ebcca8f814b103c81e0b4f' ], // This is the one I want to access! 
    comMethod: [ 'face to face', 'email', 'whatsapp', 'skype' ], 
    photos: 
    [ '/uploads/1fb7f43df2eecafb01138230c6cd87351475067373516.jpeg', 
    '/uploads/3398bcddd39be966e8300a8b9f252b181475067373518.jpeg' ] } 

私はblockedUsers他のプロパティのいずれかにアクセスすることはできませんが。

私はJSON.stringify(req.user.blockedUsers);を試しましたが、それでも未定義です。

DB内のユーザーにオブジェクトを追加するときにオブジェクトをJSON.string化しようとしましたが、同じ結果が得られます。

場合、それは便利ですが、ここで私は、データベース内のユーザーにblockedUsersを追加するコードのビットです:

app.post('/users/block', function(req,res){ 
    User.findByIdAndUpdate(
    req.body.blockingUser, // the id of the user doing the blocking 
    {$push: {blockedUsers: req.body.blockedUserId}}, // the id of the user being blocked 
    {upsert: true}, 
    // ... error handling and res.redirect - this all seems to work fine 

私は差がblockedUsersとREQの他のプロパティとの間にあるものを見ることができません。ユーザーは、私は何度も何度も間違いやミスをチェックしてきました。どんな指導もいただければ幸いです!

+0

私は謝罪しますが、私は混乱しています。あなたは 'req.user.blockedUsers'にアクセスしたいのですが、あなたは' req.body.blockedUsers'を文字列化しようとしています。req.user 'req.body'ではなく? –

+0

ああありがとう!それはただのタイプミスです - 私は "stringify req.user.blockedUsers"と言っていました。私は私の質問を更新します。 –

+0

'blockedUsers'は配列ですか? – adeneo

答えて

0

クライアントサイドがreq.body.blockedUsersに配列を渡しているため、最初のインデックスにreq.body.blockedUsers [0]を使用する必要があります。それは働いてはいけない場合

、あなたは利用req.body [ 'blockedUsers []'] [0]

幸運を試すことができます。

+0

回答ありがとうございますが、req.bodyにはありません。私はタイプミスのためにあなたを誤解していると思う(元の投稿のコメントを参照)。 –

関連する問題