我正在尝试为REST API创建一个函数,该函数基于Mongodb collection
(使用mongoose
)返回一些统计信息以及(将来)其他计算结果。
问题是我想处理从函数中“查询”中获得的结果。这是现在的全部内容:
Listing = require('../../../models/listing'); // <--- MONGOOSE MODEL
async function priceCat(id) { // <---- BASIC FUNCTION THAT'S GOING TO DO THE CALCULATIONS
var nListing = await totalDocs(id);
var makes = await countUniqMakes(id);
};
// FUNCTIONS THAT CALL THE DB TO GET THE INFO BACK
function totalDocs(id) {
Listing.countDocuments({catFrom: id}, (err, res) => {
return res;
})
}
async function countUniqMakes(id) {
let makes = {};
Listing.find({catFrom: id}).distinct('make', async (err, res) => {
for (let i = 0; i < res.length; i++) {
const make = res[i];
await Listing.countDocuments({make: make}, (err, res) => {
makes[make] = res;
});
}
console.log(makes);
return makes
});
}
module.exports = { priceCat };
为了正确地分配变量nListing
和makes
,我尝试使用async await
协议(或任何所谓的协议),但在我使用 m尝试以控制台方式登录主要功能,它会产生undefined
的任何变量。
因此,我确定它与NodeJS的async
字符有关,但我不知道它出了错,因为我正在使用async await
。
谢谢。