2

我一直在使用 express 和 ejs 关闭节点应用程序,但是当我尝试像这样从控制器将数据传递给我的视图时

var myData = {
  theData: data
};
res.render(path.join(__dirname + '/../views/index'), myData);

我得到一个很好的错误

ReferenceError:.. myData 未定义 eval (来自 ejs lib)

当尝试像这样访问视图中的 myData 时

var data = <%-myData%>;

或者基本上以任何其他方式,我已经尝试对数据进行字符串化,将其包装在另一个对象和类似的东西中,但它仍然不会出现,我觉得我在这里错过了一些非常基本的东西,有人有吗关于如何解决这个问题的想法?

4

3 回答 3

1

您传递给的第二个参数是一个包含要在模板中使用的视图变量render()的对象。所以你看到的错误是有道理的。如果你想以这种方式使用,你必须在你的控制器/应用程序中做这样的事情:myData

res.render(..., { myData: JSON.stringify(myData) });
于 2014-12-03T18:36:20.197 回答
0

当我尝试从服务器发送数据时,我犯了一个愚蠢的错误。这是错误: var data = <%=myData%>; 传递时应该做什么: var data = <%-myData%>; 它应该是一个破折号而不是变量名之前的等号。

于 2018-08-02T18:37:57.063 回答
0

如果您使用HtmlWebpackPlugin插件生成模板,则数据应与templateParameters属性一起传递到您的 webpack 配置文件中。

例如:

...
plugins: [
    new HtmlWebpackPlugin({
        filename: __dirname + "/src/views/index.ejs",
        template: "./src/views/index_template.ejs",
        templateParameters: {
            myData,
        },
    }),
],
...
于 2021-02-15T14:32:16.193 回答