我正在尝试获取表单数据,查询数据库并查找与该数据相关的文档数量,并为该控制台计数(为简单起见)。
app.post('/process_get', function(req, res){
response = {
first_name : req.body.first_name,
last_name : req.body.last_name,
gender: req.body.gender
};
dbConn.then( function (db) {
var dbo = db.db("azima");
var count = dbo.collection('users').find({first_name: req.body.first_name}, {gender: req.body.gender}).count();
console.log(count);
});
console.log(response);
//convert the response in JSON format
res.end('Data received:\n' + JSON.stringify(req.body));
});
但是我正在关注:
Example app listening at http://:::8888
{ first_name: 'Najar Man', last_name: 'Malakar', gender: 'Male' }
Promise { <pending> }
我知道这是由于异步特性造成的,但是我不知道如何执行此“简单”操作,因为我是node.js和mongodb的新手。
如何将count
值正确存储为变量?
答案 0 :(得分:1)
如果您正在使用最新技术。使用异步/等待。
app.post('/process_get',function(req, res){
response = {
first_name : req.body.first_name,
last_name : req.body.last_name,
gender: req.body.gender
};
dbConn.then( function (database) {
var dbo = database.db("azima");
var count
dbo.collection('users').find({first_name: req.body.first_name},
{gender: req.body.gender})
.count(function(err,resCount){
if(err){
console.log(err)}
else{
count = resCount
console.log(count);
res.end('Data received:\n' + JSON.stringify(req.body));
}
});
}).catch(function(e){console.log(e)})
console.log(response);
//convert the response in JSON format
});
如果可以,请尝试添加,否则,请尝试共享catch块中的内容
有关何时从mongo查询发送数据的更多信息,则需要将res.send放入dbConn.then
内,否则它将不等待mongodb查询,而您将发送