我正在编写一个Node应用程序,它依赖于两个Mongoose数据库X和Y,以便Y的对象模型具有X个对象的数组。
我想创建一个ejs文件,以便用户可以选择将X的实例添加到Y的实例,由中间件(控制器)处理。
我对如何从一个EJS渲染中的两个来源(即X模式中的所有X对象和Y模式中的所有Y对象)获取所需数据感到困惑,以便用户可以选择要放入的X一个Y。
我的控制器功能如下:
exports.get_all_[X or Y] = function(req, res) {
[X or Y].find({}, function(err, [X or Y]) { ...
我的路线如下:
router.get('/getAllX', XController.get_all_X);
router.get('/getAllY', YController.get_all_Y);
在我的EJS文件中,我想通过调用这两个请求来获取所有X实例和所有Y实例,但是我不确定如果只有一个HTTP请求呈现EJS怎么办。
是否有一种方法可以从两个来源获取数据然后调用,例如:
res.render('ejs', {dataX: dataX, dataY: dataY});
?
侧面问题:假设我有一个最终会呈现EJS文件的函数,例如:
exports.get_all_Y = function(req, res) {
...
} else {
res.render('example_ejs', {data: data});
}
如果我要在多个EJS文件中使用/调用此函数,该如何完成?我的直觉是,我会将res.render更改为res.send,并且不包含要在函数中呈现的一个特定ejs文件,但是然后我不确定1)我将在何处呈现ejs文件和2)我将在何处/何时?将ejs文件渲染链接到函数调用。
非常感谢您!