Вы не можете отправить несколько ответов, используя HTTP. HTTP-запросы к ответам - 1: 1, поэтому при отправке запроса ВСЕГДА ожидайте только одного ответа. Что-нибудь еще, и это будет быстро запутаться. Итак, как отправить несколько наборов данных?
Вы могли бы сделать что-то вроде этого:
router.get("/test/:id", (req, res) => {
let result = {}
example.find({test: req.params.id})
.then(data => {
result['partOne'] = data.map(moreData => moreData.serialize())
return differentExample.find({something: req.params.id})
}).then(data => {
result['partTwo'] = data.map(moreData => moreData.serialize())
res.json(result)
})
}
Примечание: я не проверял ни один из этого кода. Но по сути, выполните оба запроса, и как только вы получите результат обоих запросов, вы можете вернуть результат. Если запросы не зависят друг от друга, вы можете использовать что-то вроде этого, используя Promise.all
, как вы упомянули:
Promise.all(
example.find({test: req.params.id},
differentExample.find({something: req.params.id})
).then(result => {
res.json(result);
})