如何将数组传递给Express中的ejs模板?

use*_*018 3 javascript ejs node.js express

我正在尝试将包含对象的数组传递给express中的ejs视图,但它不起作用.

在服务器中

var roominfo = function(roomname){
this.roomname=roomname;
};

room_info_array= new Array(1);
room_info_array[0]=new roominfo("room");

app.get("/", function(req, res){
res.render('login',{room_info:room_info_array});
});
Run Code Online (Sandbox Code Playgroud)

在客户端,

<script type="text/javascript">
var data = <%= JSON.stringify(room_info) %>
</script>
Run Code Online (Sandbox Code Playgroud)

这显示错误"Uncaught SyntaxError:Unexpected token&".

var data = [{&quot;roomname&quot;:&quot;room&quot;}]"
Run Code Online (Sandbox Code Playgroud)

我试过这个

<script type="text/javascript">
var data = <% JSON.stringify(room_info) %>
</script>
Run Code Online (Sandbox Code Playgroud)

但是,这表明数据未定义.

我应该如何正确地将数组传递给ejs?

ade*_*neo 9

在EJS回声中完成了一些事情

<%= %>
Run Code Online (Sandbox Code Playgroud)

要么

<%- %>
Run Code Online (Sandbox Code Playgroud)

在最后一个示例中,您没有回显任何内容,因此没有任何内容传递给data它,并且它未定义.

在第一个示例中,您还要转义回显的内容,因此请尝试使用未转义的字符串回显,因为这将删除实体.

var data = <%- JSON.stringify(room_info) %>
Run Code Online (Sandbox Code Playgroud)