私は多くを試してみましたが、私にはうってつけのものはありませんでした。 私はpromise.allを試して、配列をグローバルに設定しましたが、成功しませんでした。約束でオブジェクト配列を送信する方法
私はMongoDB上の3つのコレクションを検索したいと思います。そして、findが一致したら、オブジェクトをinfosで設定して配列にプッシュします。最後に、オブジェクト配列の応答を送信します。愚かな間違いのため申し訳ありませんが、私はコミュニティに頼ることにしました解決策を見つけようと多くの時間を費やしてきた
router.post('/certificado', (req, res) => {
let cpf = splita(req.body.cpf)
let array = []
function pesquisaProjeto(cpf) {
return new Promise(function (fulfill, reject) {
ProjetoSchema.find({'integrantes.cpf':cpf}, 'integrantes.$ nomeProjeto -_id',(err, usr) => {
if (err) return reject(err)
fulfill(usr)
});
})
}
function pesquisaAvaliador(cpf) {
return new Promise(function (fulfill, reject) {
avaliadorSchema.find({'cpf':cpf}, 'nome -_id',(err, usr) => {
if (err) return reject(err)
fulfill(usr)
})
})
}
function pesquisaParticipante(cpf) {
return new Promise(function (fulfill, reject) {
participanteSchema.find({'cpf':cpf}, 'nome eventos -_id', (err, usr) => {
if (err) return reject(err)
fulfill(usr)
})
})
}
pesquisaProjeto(cpf)
.then(usr => {
let participante = ({
tipo: usr[0].integrantes[0].tipo,
nome: usr[0].integrantes[0].nome
})
array.push(participante)
console.log(participante)
})
.catch(err => console.log("Não encontrou nada nos projetos. " + err.message))
pesquisaAvaliador(cpf)
.then(usr => {
let participante = {
tipo: "Avaliador",
nome: usr[0].nome
}
array.push(participante)
console.log(array)
})
.catch(err => console.log("Não encontrou nada nos avaliadores. " + err.message))
pesquisaParticipante(cpf)
.then(usr => {
let participante = ({
tipo: "Participante",
nome: usr[0].nome,
eventos: usr[0].eventos
})
array.push(participante)
console.log(array)
})
.catch(err => console.log("Não encontrou nada nos participantes dos eventos. " + err.message))
**Anything like res.send(array) that I was tired to try**
});
。
ありがとうございます!
のためだけ短いのですか? – hyades
わからない。 'promise.all'の' .then() 'で' res.send(array) 'しようとすると、何も前面に送られません。約束と配列宣言の中のプッシュでは何かが間違っているかもしれないと考えてください。 –
「Promise.all」の使い方を教えてください。 – Bergi