Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用预定义函数从mongodb/mongoose获取数据_Javascript_Mongodb_Express_Mongoose_Typescript - Fatal编程技术网

Javascript 使用预定义函数从mongodb/mongoose获取数据

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

这就是我目前从mongodb获取数据的方式:

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(“”,数据);
});
});

我来试试这个。我会尽快回复你的,我会试试这个。我会尽快给你回复。