Node.js 将数据传递到视图时,节点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库) 当试

我已经接近使用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库) 当试图访问视图中的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,
        },
    }),
],
...