如何使用 expressjs 一次 运行 多个猫鼬查询并生成 json respnose
How to run multiple mongoose queries at once and generate json respnose using expressjs
在这段代码中,我试图从两个不同的文档中获取对象计数,并发送一个 json 响应,其中包含两个查询的结果。但不幸的是,此代码段的响应始终为 -1,它不会随查询结果更新。
router.get('/stats', function (req, res, next) {
let cateCount = -1;
let userCount = -1;
Category.find({}).then(function(item){
cateCount = item.length;
});
Register.find({}).then(function(item){
userCount = item.length;
});
res.json({
"categories":
cateCount,
"users":
userCount
});
回复:
{"categories":-1,"users":-1}
计算文档使用:https://mongoosejs.com/docs/api/model.html#model_Model.count
和async-await这样:
router.get('/stats',async function (req, res, next) {
let cateCount = -1;
let userCount = -1;
cateCount = await Category.count({});
userCount = await Register.count({});
res.json({
categories:cateCount,
users:userCount
});
});
您可以链接调用,在返回响应之前等待回调。
这是一种可能的解决方案:
router.get('/stats', function (req, res, next) {
let cateCount = -1;
let userCount = -1;
Category.find({}).then(function(item){
cateCount = item.length;
Register.find({}).then(function(item){
userCount = item.length;
res.json({
"categories": cateCount,
"users": userCount });
});
});
在这段代码中,我试图从两个不同的文档中获取对象计数,并发送一个 json 响应,其中包含两个查询的结果。但不幸的是,此代码段的响应始终为 -1,它不会随查询结果更新。
router.get('/stats', function (req, res, next) {
let cateCount = -1;
let userCount = -1;
Category.find({}).then(function(item){
cateCount = item.length;
});
Register.find({}).then(function(item){
userCount = item.length;
});
res.json({
"categories":
cateCount,
"users":
userCount
});
回复:
{"categories":-1,"users":-1}
计算文档使用:https://mongoosejs.com/docs/api/model.html#model_Model.count
和async-await这样:
router.get('/stats',async function (req, res, next) {
let cateCount = -1;
let userCount = -1;
cateCount = await Category.count({});
userCount = await Register.count({});
res.json({
categories:cateCount,
users:userCount
});
});
您可以链接调用,在返回响应之前等待回调。 这是一种可能的解决方案:
router.get('/stats', function (req, res, next) {
let cateCount = -1;
let userCount = -1;
Category.find({}).then(function(item){
cateCount = item.length;
Register.find({}).then(function(item){
userCount = item.length;
res.json({
"categories": cateCount,
"users": userCount });
});
});