Javascript 使用预定义函数从mongodb/mongoose获取数据
这就是我目前从mongodb获取数据的方式:Javascript 使用预定义函数从mongodb/mongoose获取数据,javascript,mongodb,express,mongoose,typescript,Javascript,Mongodb,Express,Mongoose,Typescript,这就是我目前从mongodb获取数据的方式: users.get(base_URL, (req, res) => { UserModel.find({}, (err, docs) => { res.render("Users/index", { title: "All Users here", user_list: docs }); }); }); 现在,正如您所看到的,这是一个expr
users.get(base_URL, (req, res) => {
UserModel.find({}, (err, docs) => {
res.render("Users/index", {
title: "All Users here",
user_list: docs
});
});
});
现在,正如您所看到的,这是一个express应用程序。我想要的是简单地调用一个函数,这样我就可以从mongodb模型回调中的docs
变量中获取值。理想情况下,我希望看到这样的情况:
users.get(base_URL, (req, res) => {
res.render('<some_jade_file_here>', {
title: "Yes, got it right",
user_list: getAllUsers();
});
});
users.get(基本URL,(req,res)=>{
res.render(“”{
标题:“是的,做对了”,
用户列表:getAllUsers();
});
});
理想情况下,我只想调用一个函数。我如何做到这一点,因为必须将render放在mongodb调用中是一个问题,因为您可能需要从数据库中查询大量内容,甚至可能不仅仅是一个数据库。我有点挣扎,因为我不太习惯回电话
任何帮助都将不胜感激。如果您想知道这种语法,那只是typescript中的一个匿名函数。如果没有回调,您无法完成它,但是您可以使用异步流控制库来帮助管理回调的嵌套。在这种情况下,您可能需要使用 使用它,您可以执行以下操作:
users.get(base_URL, (req, res) => {
var data = {
title: "Yes, got it right"
};
async.parallel([
(callback) => {
UserModel.find({}, (err, docs) {
data.user_list = docs;
callback(err);
});
},
(callback) => {
// Other query that populates another field in data
}
], (err, results) => {
// Called after all parallel functions have called their callback
res.render('<some_jade_file_here>', data);
});
});
users.get(基本URL,(req,res)=>{
风险值数据={
标题:“是的,做对了”
};
异步并行([
(回调)=>{
UserModel.find({},(err,docs){
data.user\u list=单据;
回调(err);
});
},
(回调)=>{
//填充数据中其他字段的其他查询
}
],(错误,结果)=>{
//在所有并行函数调用其回调后调用
res.render(“”,数据);
});
});
如果没有回调,您无法完成这项工作,但您可以使用异步流控制库来帮助管理回调的嵌套。在这种情况下,您可能需要使用
使用它,您可以执行以下操作:
users.get(base_URL, (req, res) => {
var data = {
title: "Yes, got it right"
};
async.parallel([
(callback) => {
UserModel.find({}, (err, docs) {
data.user_list = docs;
callback(err);
});
},
(callback) => {
// Other query that populates another field in data
}
], (err, results) => {
// Called after all parallel functions have called their callback
res.render('<some_jade_file_here>', data);
});
});
users.get(基本URL,(req,res)=>{
风险值数据={
标题:“是的,做对了”
};
异步并行([
(回调)=>{
UserModel.find({},(err,docs){
data.user\u list=单据;
回调(err);
});
},
(回调)=>{
//填充数据中其他字段的其他查询
}
],(错误,结果)=>{
//在所有并行函数调用其回调后调用
res.render(“”,数据);
});
});
我来试试这个。我会尽快回复你的,我会试试这个。我会尽快给你回复。