Ich möchte Daten aus 3 verschiedenen Versprechen in die Render-Funktion in Nodejs übergeben, um mit Mug zu verwenden.Mehrere Versprechen in Knoten übergeben JS render
var promise = require('promise');
var statusChart = new promise(function (resolve, reject) {
a.aggregate(
[
{
$group: {
_id: '$status',
count: {$sum: 1}
}
}
], function (err, status) {
if (err) {
console.log(err);
reject(err);
} else {
resolve(status);
}
});
});
var severityChart = new promise(function (resolve, reject) {
a.aggregate(
[
{
$group: {
_id: '$severity',
count: {$sum: 1}
}
}
], function (err, vuln) {
if (err) {
console.log(err);
reject(err);
} else {
resolve(vuln);
}
});
})
var countChart = new promise(function (resolve, reject) {
a.count(function (err, count) {
if (err) {
console.log(err);
reject(err);
} else {
resolve(count);
}
});
})
statusChart.then((message) => {
console.log(message);
});
severityChart.then((data) => {
console.log(data);
});
countChart.then((item) => {
console.log(item);
});
Der obige Code funktioniert gut, und meine Ergebnisse
[ { _id: 'Medium', count: 6 },
{ _id: 'High', count: 15 },
{ _id: 'Low', count: 1 } ]
[ { _id: 'New', count: 1 },
{ _id: 'Closed', count: 1 },
{ _id: 'In Progress', count: 11 },
{ _id: 'Pending', count: 9 } ]
22
Frage zurück: Wie ich diese Daten in der Funktion machen passieren zu tun.
res.render ('Graphen', {info: statusChart, vuln: strengthChart, count: countChart});
Wenn ich versuche, es auf diese Weise erhalte ich die folgenden Ergebnisse auf der Mops Seite
var results = { "_75": 1, "_ 83": 0, "_ 18": null, "_ 38": { "onRejected": null, "promise": {"_ 75": 0, "_ 83": 0, "_ 18": null, "_ 38": null}}}; var status = {"_75": 1, "_ 83": 0, "_ 18": null, "_ 38": {"onRejected": null, "promise": {"_ 75": 0, "_ 83": 0 , "_ 18": null, "_ 38": null}}}; var gesamt = {"_75": 1, "_ 83": 0, "_ 18": null, "_ 38": {"onRejected": null, "promise": {"_ 75": 0, "_ 83": 0 , "_ 18": null, "_ 38": null}}};
Verwenden 'Promise.all'. – Bergi
Sie sollten wirklich schreibe eine Hilfsfunktion, die eine ID annimmt, "new Promise" und "a.aggrate" aufruft und das Versprechen für das Ergebnis zurückgibt. – Bergi