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

时间:2014-07-06 04:38:52

标签: javascript node.js express ejs

我试图将包含对象的数组传递给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});
});

在客户端,

<script type="text/javascript">
var data = <%= JSON.stringify(room_info) %>
</script>

这显示错误&#34; Uncaught SyntaxError:Unexpected token&amp; &#34;

var data = [{&quot;roomname&quot;:&quot;room&quot;}]"

我试过这个

<script type="text/javascript">
var data = <% JSON.stringify(room_info) %>
</script>

但是这表明数据未定义。

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

1 个答案:

答案 0 :(得分:9)

在EJS回声中,用

完成了一些事情
<%= %>

<%- %>

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

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

var data = <%- JSON.stringify(room_info) %>