如何将Pug JSON对象传递给客户端JavaScript

5
我正在尝试将一个 JSON 对象从 Pug 传递到客户端 JavaScript。以下是代码的结构。我从我的 Node-Express 后端呈现一个 JSON 对象并将其传递给 Pug。以下是代码:
`server.js`:
app.get('/myrooms', function(req, res) {
    Room.find()
        .where('_id')
        .in(user.rooms)
        .exec(function (err, records) {
            res.render('rooms/index', {myrooms : records})
        })
})

之后,这个对象就可以在我的 pug 文件中使用。现在我想要将它传递给客户端脚本。我在我的 index.pug 文件中进行了以下操作:
script(src='/js/play.js').
    trooms = "#{myrooms}"

play.js:

console.log(trooms)

它显示了“'troom未定义”错误。我不知道如何传递这个对象。根据一些旧帖子,这在jade中可以工作。然而,我正在使用pug版本2.0.0-rc.2

在调用脚本之前,你必须先输出 trooms = "#{myrooms}" - lxe
此外,需要调用 JSON.parse('#{myrooms}') 将 JSON 转换为对象。 - alexmac
1
我已经尝试过 JSON.parse('#{myrooms}') 但没有成功。 - Shadid
1个回答

12
你可以尝试。
var trooms = !{JSON.stringify(myrooms)}

我将其回滚到较旧版本的jade,这样可以正常工作。目前我会使用这个版本。 - Shadid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接