首页 > 解决方案 > PugJS 没有从 json 插入数字

问题描述

我正在尝试呈现从路由器 API 获得的接口列表。它被格式化为 JSON。Pug 只渲染字符串而不是数字。

输出(它在 html 中正确呈现):

em1 192.168.0.0/24
Address: 192.168.0.1    
Received Packets: NaN    
Sent Packets: NaN

JSON:

(em1) / 192.168.0.1":{"name":"em1","flags":"0x8943","network":"192.168.0.0/24","address":"192.168.0.1","received-packets":2524179,"received-bytes":247344321,"sent-packets":2453592,"sent-bytes":1695092680},"

哈巴狗代码:

div.container
        each interface in interfaces
            div.interface
                h2.interface-name
                    | #{interface.name} #{interface.network}
                p Address: #{interface.address}
                p Received Packets: #{interface.received-packets}
                p Sent Packets: #{interface.sent-packets}

对于我的一生,我找不到任何可以告诉我如何处理本地数字的东西。我正在使用 nodejs 并用 pug 表达。

标签: javascriptnode.jsjsonexpresspug

解决方案


好的,回答我自己的问题。标识符名称中的破折号似乎不起作用。为了访问该项目,请在其周围加上括号和单引号。所以以下工作:

  div.interface
                h2.interface-name
                    | #{interface.name} #{interface.network}
                p Address: #{interface.address}
                p Received Packets: 
                    |#{interface['received-packets']}
                p Received Bytes: #{interface['received-bytes']}
                p Sent Packets: #{interface['sent-packets']}

来自:无法使用“-”破折号访问 JSON 属性


推荐阅读