未定义Node-Express(module.exports)变量

时间:2019-03-10 15:38:25

标签: javascript node.js express ejs

我会直接讨论这个话题。

我有3个文件,app.js(主要文件),cat.js(具有对象数组)和cats.ejs(路线的渲染文件)。现在我想从cats.ejs文件中遍历obj的arr。我在cat.js中使用了module.exports = Cats,并在我的app.js中要求使用它(但是我只能在我的app.js中使用它,否则会抛出未定义的变量)。

问题是,我应该怎么做才能从cats.ejs文件访问数组? 我知道我不擅长解释事物,因此我将为每个文件包括3张图像。

cat.js文件[在底部,我有module.exports = Cats; ]-> http://prntscr.com/mvwuqs

app.js文件-> http://prntscr.com/mvwv7k

cats.ejs文件-> http://prntscr.com/mvwvvc

如果这是一个愚蠢的问题,我真的很抱歉,但我不知道。

1 个答案:

答案 0 :(得分:0)

  1. 您要在文件末尾导出猫吗?如果您正在执行module.exports,则它必须是一个对象。
module.exports = {
  getCats: function() {
    const Cats = [{}, {}, {}];
    return Cats;
  }
};
  1. 导出后,您将可以在app.js中访问它。您可以将其传递给res.render中的ejs。
let cats = require('./cat');
app.get('/cats', function(req, res) {
  res.render('cats', { CatsData: cats.getCats() });
});
  1. 在您的ejs中,您可以通过以下方式访问它:
<% CatsData.forEach(function(cat, index) { 
    // your data and its properties will be here.
}) %>