#javascript #node.js #express #ejs
#javascript #node.js #экспресс #ejs
Вопрос:
Я пытаюсь передать массив, содержащий объекты, в представления ejs в express, но это не работает.
На сервере,
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>
это показывает ошибку «Uncaught SyntaxError: неожиданный токен amp; «.
var data = [{amp;quot;roomnameamp;quot;:amp;quot;roomamp;quot;}]"
Я попробовал это
<script type="text/javascript">
var data = <% JSON.stringify(room_info) %>
</script>
Однако это показывает, что данные не определены.
Как я должен правильно передать массив в ejs?
Ответ №1:
В EJS echoing что-то делается с
<%= %>
или
<%- %>
В последнем примере вы ничего не повторяете, поэтому в data
ничего не передается, и это не определено.
В первом примере вы также экранируете отображаемое содержимое, поэтому попробуйте использовать echoing строку без экранирования, поскольку это приведет к удалению объектов.
var data = <%- JSON.stringify(room_info) %>