Node.js 将数据传递到视图时,节点ejs引用错误数据在评估时未定义
我已经接近使用express和ejs的节点应用程序,但是当我尝试从控制器将数据传递到视图时,就像这样Node.js 将数据传递到视图时,节点ejs引用错误数据在评估时未定义,node.js,express,view,ejs,embedded-javascript,Node.js,Express,View,Ejs,Embedded Javascript,我已经接近使用express和ejs的节点应用程序,但是当我尝试从控制器将数据传递到视图时,就像这样 var myData = { theData: data }; res.render(path.join(__dirname + '/../views/index'), myData); 我犯了一个很好的错误 ReferenceError:.. myData is not defined eval (from ejs lib) 引用错误:。。myData未定义为eval(从ejs库) 当试
var myData = {
theData: data
};
res.render(path.join(__dirname + '/../views/index'), myData);
我犯了一个很好的错误
ReferenceError:.. myData is not defined eval (from ejs lib)
引用错误:。。myData未定义为eval(从ejs库)
当试图访问视图中的myData时,如下所示
var data = <%-myData%>;
var数据=;
或者从其他方面来说,基本上,我已经尝试过对数据进行字符串化,将其包装到另一个对象或类似的东西中,但它仍然不会出现,我感觉我缺少了一些真正基本的东西,有人知道如何解决这个问题吗?传递给
render()的第二个参数
是包含要在模板中使用的视图变量的对象。所以你看到的错误是有道理的。如果您想以这种方式使用myData
,您必须在控制器/应用程序中执行以下操作:
res.render(..., { myData: JSON.stringify(myData) });
当我试图从服务器发送数据时,我犯了一个愚蠢的错误。 这里有一个错误: var数据=强> 通过时应执行的操作: var数据=强>
变量名前应该是一个破折号,而不是一个相等的破折号。如果您正在使用HtmlWebpackPlugin插件生成模板,那么数据应该与
templateParameters
属性一起传递到您的网页包配置文件中
例如:
...
plugins: [
new HtmlWebpackPlugin({
filename: __dirname + "/src/views/index.ejs",
template: "./src/views/index_template.ejs",
templateParameters: {
myData,
},
}),
],
...