2016-10-27 8 views
0

したがって、私はsails jsを使用してアプリケーションを開発しています。私はそれをコメントとして返信してスレッドを送信したい。ここモデルはSailsのネストされたモデルのIDのみを表示します

は私のモデルだ

Thread.js

module.exports = { 

    attributes: { 
    id: { 
     type: "integer", 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    title: "string", 
    content: "string", 
    userId: { 
     model: "user" 
    }, 
    createdAt: "string", 
    isSecret: "boolean", 
    comments: { 
     collection: "comment", 
     via: "threadId" 
    } 
    } 
}; 

Comment.js

module.exports = { 

    attributes: { 
    id: { 
     type: "integer", 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    threadId: { 
     model: "thread" 
    }, 
    content: "string", 
    createdAt: "string", 
    isSecret: "boolean", 
    userId: { 
     model: "user" 
    } 
    } 
}; 

コメントの中にネストされた2つのモデル、ユーザとスレッドがあります。しかし、応答はIDのみを表示します

{ 
    "comments": [ 
    { 
     "threadId": 4, 
     "content": "Comment of thread one.", 
     "createdAt": "10-27-2016 09:39:50", 
     "isSecret": false, 
     "userId": 5, 
     "updatedAt": "2016-10-27T01:50:19.968Z", 
     "id": 3 
    } 
    ], 
    "userId": { 
    "firstName": "Tio", 
    "LastName": "Ammar", 
    "email": "[email protected]", 
    "userName": "tioammar", 
    "avatar": "https://tioammar.com/avatar.jpg", 
    "createdAt": "2016-10-27T01:33:02.076Z", 
    "updatedAt": "2016-10-27T01:33:02.076Z", 
    "id": 5 
    }, 
    "title": "Initial Thread", 
    "content": "Content of initial thread.", 
    "createdAt": "10-27-2016 09:34:50", 
    "isSecret": false, 
    "updatedAt": "2016-10-27T01:35:29.559Z", 
    "id": 4 
} 

私は実際のユーザーモデルを表示したいと思います。助けて、事前に感謝してください! :)

答えて

2

あなたが探しているものは深い/入れ子の人口です。 Here is a similar question

悲しいことに、ウォーターラインは深い人口をサポートしていないため、ウォーターラインの使用を継続したい場合は、それを達成するためにいくつかのクエリを実行する必要があります。あなたがこれを行うことを決定した場合のように見えるかもしれません余分なクエリのいずれか...

Comment.find({threadId: thread.id}) 
    .populate("userId") 
    .exec(function(err, comments){ 
    if(err)... 
    thread.comments = comments; 
    }); 

、あなたは issues using toJSON()を持っているかもしれません。

+0

Deep populateは、ウォーターラインフォークで利用できます。 Offshore ORMと呼ばれ、Sails.jsにフックで追加することができます:https://github.com/Atlantis-Software/sails-hook-orm-offshore – Bonanza

関連する問題