5

我正在使用我的节点应用程序从 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 并且使用文章中的建议会导致“未定义”或“非法字符”错误。

我完全没有想法......帮助?肿瘤坏死因子

4

1 回答 1

4

Jonathan Ong 的评论实际上让我走上了正轨。由于我使用的是 html 的客户处理程序,因此它不会解释任何变量。

我改用ejs:

     // view engine ejs
     app.set('view engine', 'ejs');
     app.register('.html', require('ejs'));

并使用了以下占位符:

    <%= eventData.Subject %>

这实际上使我的数据出现了。感谢所有的评论和回答!迈克尔

于 2013-03-12T17:13:50.747 回答