如何在一个ejs渲染中从多个HTTP请求中获取数据

时间:2019-05-26 03:35:09

标签: html node.js http ejs

我正在编写一个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文件渲染链接到函数调用。

非常感谢您!

0 个答案:

没有答案