Javascript 在同一路径中呈现多个MongoDB集合(Express)
我在我的Express应用程序中有一个get方法,它呈现了我的MongoDB中一个名为“Members”的集合。这很有效,我可以在url“/agileApp”上读取结果。但是,我想将另一个集合呈现到相同的URL中—一个称为“任务”的集合。这可能吗?以下是我目前的代码: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:
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时,我只需要呈现两个集合。