Я разрабатываю API, который показывает список досок объявлений.
И он также показывает одно из последних сообщений одновременно.
В контроллере, который я закодировал так
exports.boards_get_all = (req, res, next)=>{
Board.find()
.exec()
.then(boards=>{
res.status(200).json({
count: boards.length,
boards: boards.map(board=>{
return {
board: {
id:board._id,
name: board.name,
order: board.order
},
post : Post.findOne({boardId:board._id})
.exec()
.then(posts=>{
console.log(posts)
return posts;
}
)
}
})
})
})
}
Я использую findOne () и пытаюсь вернуть то, что было найдено Post
, но ответ не сработал. просто верните пустое значение.
результат:
{
"count": 1,
"boards": [
{
"board": {
"id": "5eb23f1fed38dc5dfc2debfd",
"name": "QnA board",
"order": 1
},
"post": {}
}
]
}
Думаю, я ошибся в использовании findOne () ...
Я хочу получить такой результат
{
"count": 1,
"boards": [
{
"board": {
"id": "5eb23f1fed38dc5dfc2debfd",
"name": "QnA board",
"order": 1
},
"post": {
_id: 5eb364a27989ab6f414fcdb1,
userId: 5eb2aad669738d67b5497f3a,
boardId: 5eb23f1fed38dc5dfc2debfd,
type: 1,
title: 'this is a latest post in QnA board',
content: 'Sample content',
like: 0,
comment: 0,
view: 1,
date: 2020-05-07T01:30:10.957Z,
thumb: 'pic url',
__v: 0
}
}
]
}