我需要在node.js中使用mongoose返回查询结果。
如何返回值以将值设置为变量?
我需要做的是:
var results = users.findOne({_id : users_list[i]['user_id']},{email : 1, credits : 1},{}, function(err, docs) {
if( err || !docs) {
console.log("No user found");
} else {
return docs;
};
});
为了拥有:
results = docs
非常感谢你的回复。
我还有另一个问题。
如何使用find或findOne在查询操作符中传递变量?像这样:
var foo = "Blaa";
users.findOne({_id : users_list[i]['user_id']},{email : 1, credits : 1},{}, function(err, docs) {
if( err || !docs) {
console.log("No user found");
} else {
// I want to use the foo variable here
console.log(foo);
};
});
发布于 2018-02-05 20:50:12
它在赋值之前执行。
async function(req, res) {
var user;
await users.findOne({}, function(err,pro){
user=pro;
});
console.log(user); \\ it's define
};
发布于 2019-09-20 14:30:38
您可以很容易地实现这一点。
const getUser = async ( req, res ) => {
let users = () => ( User.find({_id : users_list[i]['user_id']},{email : 1, credits : 1}).exec() );
try { res.send({"user":await users() });}
catch(e) { console.log(e) }
}
app.get('/user' , getUser);
发布于 2018-06-25 02:55:11
您可以通过以下代码实现预期的结果。希望这会对你有很大帮助..
var async = require('async');
// custom imports
var User = require('../models/user');
var Article = require('../models/article');
var List1Objects = User.find({});
var List2Objects = Article.find({});
var resourcesStack = {
usersList: List1Objects.exec.bind(List1Objects),
articlesList: List2Objects.exec.bind(List2Objects),
};
async.parallel(resourcesStack, function (error, resultSet){
if (error) {
res.status(500).send(error);
return;
}
res.render('home', resultSet);
});
https://stackoverflow.com/questions/24035872
复制相似问题