我正在使用我的节点应用程序从API检索某些数据,并希望在视图中显示该数据并允许用户在那里进行更改。我正在调用api并得到一个JSON响应,我想传递给视图。这就是我正在做的事情:
var query = 'SELECT Id, OwnerId, ActivityDateTime, EndDateTime, WhatId, WhoId, Subject FROM Event WHERE OwnerId = \'' + user.userId + '\'' ;
// execute the query and get response
...
...
var ev = resp.records;
res.render('index.html', {eventData : ev});
问题是当我想在我的视图中使用数据时,我得到一个未定义的错误。
如果我这样做:
<div id='Subject'>#{eventData.Subject}</div>
我打印出#{eventData.Subject}
尝试在JS中使用数据会返回一个未定义的错误:
<script type="text/javascript">
var mydata = #{eventData};
</script>
经过一番搜索后,我发现了一篇建议首先对其进行字符串化的帖子:
var mydata = !{JSON.stringify(eventData)};
console.log(mydata);
在这里,我收到语法错误“SyntaxError:missing:after property id”
我很确定我错过了一些基本的东西而且不能为我的生活弄清楚。我发现了许多文章示例,解释了如何在Jade中进行,但我不想使用Jade并使用文章中的建议导致“未定义”或“非法字符”错误。
我完全没有想法......帮忙? TNX
答案 0 :(得分:3)
Jonathan Ong的评论实际上让我走上正轨。由于我使用html的客户处理程序,它不会解释任何变量。
我转而使用ejs:
// view engine ejs
app.set('view engine', 'ejs');
app.register('.html', require('ejs'));
并使用以下占位符:
<%= eventData.Subject %>
这实际上使我的数据显示出来。感谢所有的评论和答案! 迈克尔