【问题标题】:trouble with express.index sending a json objectexpress.index 发送 json 对象的问题
【发布时间】:2013-03-07 21:22:28
【问题描述】:

我正在使用 express 来做一个非常简单的页面。我的index.js 看起来像这样:

exports.index = function(req, res){
  res.render(
    'index', 
        { 
            title: 'Expressssss',
            Tin: varTin,
            Tout : varTout,
            Hin : varHin,
            Tout_array : { 'date': 'Thu Mar 07 2013 22:00:04 GMT+0100 (CET)', 'value': '10062' }
        }
    );
};

在文件index.ejs 上,我可以使用例如<%= Tin %> 的值...这很好用....

问题是data = <%= Tout_array %>; 似乎不能正常工作。使用 chromes 控制台,它在这一行出现错误。解析后的html代码如下:

data = [object Object];

此时的错误是

    Uncaught SyntaxError: Unexpected identifier

我做错了什么?为什么解析任何其他变量都很好,但不是这个嵌套的 json 结构?我正在使用它,因为我想发送一个更大的数组。

【问题讨论】:

  • 我们能看到 index.ejs 文件吗?
  • 在没有任何其他指导的情况下,JavaScript Objects toString() 到你所得到的 -- [object Object]。如果你想要更有用的东西,你必须明确你想要的格式。对于 JSON,这是 JSON.stringify(),正如其他人已经建议的那样。
  • @JonathanLonowski 感谢您的想法。我现在遇到2个问题。首先,JSON.stringify 用"-qhotes 退出一个字符串,这不起作用......其次,我需要在数组中添加一个额外的引号,'[{},{}]‘ instad of [{},{}].... 所以我需要从[{"date":},{}] 转换为'[{\'date\'},{}]‘。有点奇怪有没有更好的方法?

标签: javascript arrays json node.js express


【解决方案1】:

如果您尝试从 EJS 模板生成客户端 Javascript,我认为您需要这样:

data = <%- JSON.stringify(Tout_array) %>;

【讨论】:

  • 谢谢!!! &lt;%- 成功了。拳头,我认为这是一个错字,但它确实有所作为。 (注意,它&lt;%=相同)
【解决方案2】:

试试这个:

<%= JSON.stringify(Tout_array) %>

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多