Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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集合(Express)_Javascript_Mongodb_Express_Vue.js - Fatal编程技术网

Javascript 在同一路径中呈现多个MongoDB集合(Express)

Javascript 在同一路径中呈现多个MongoDB集合(Express),javascript,mongodb,express,vue.js,Javascript,Mongodb,Express,Vue.js,我在我的Express应用程序中有一个get方法,它呈现了我的MongoDB中一个名为“Members”的集合。这很有效,我可以在url“/agileApp”上读取结果。但是,我想将另一个集合呈现到相同的URL中—一个称为“任务”的集合。这可能吗?以下是我目前的代码: expressApp.get('/agileApp', function(request, response) { MongoClient.connect(url, {useUnifiedTopology:

我在我的Express应用程序中有一个get方法,它呈现了我的MongoDB中一个名为“Members”的集合。这很有效,我可以在url“/agileApp”上读取结果。但是,我想将另一个集合呈现到相同的URL中—一个称为“任务”的集合。这可能吗?以下是我目前的代码:

expressApp.get('/agileApp', function(request, response) {
    MongoClient.connect(url,
        {useUnifiedTopology: true},
        function(error, db) {
            if (error) {
                throw error;
            }
            let databaseobject = db.db(dbName);
                databaseobject.collection("Members").find().toArray(function (err, result) {
                    if (err) throw err;
                    response.render('agileApp', {
                        result: result,
                    });
                    db.close();
                });
        });
});


只需使用一个请求参数来决定渲染哪个集合,并根据该值渲染该集合

expressApp.get('/agileApp', function(request, response) {
// take the collection to render as request parameter (this is form parameter, json also can be used)
let collectionToRender = request.params.collectionToRender
MongoClient.connect(url,
    {useUnifiedTopology: true},
    function(error, db) {
        if (error) {
            throw error;
        }
        let databaseobject = db.db(dbName);
            // here it will query the mongodb for the collection which has been provided in the request
            // if user enters Tasks then Tasks collection will be rendered
            databaseobject.collection(collectionToRender).find().toArray(function (err, result) {
                if (err) throw err;
                response.render('agileApp', {
                    result: result,
                });
                db.close();
            });
    });
  });

因此,用户不会真正输入任何内容。输入/agileApp时,我只需要呈现两个集合。