Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Pug JSON对象传递给客户端JavaScript_Javascript_Node.js_Pug - Fatal编程技术网

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

如何将Pug JSON对象传递给客户端JavaScript,javascript,node.js,pug,Javascript,Node.js,Pug,我试图将一个JSON对象从pug传递到客户端JavaScript。下面是代码的结构。我呈现一个JSON对象,并从Node Express后端将其传递给帕格。代码如下: server.js: app.get('/myrooms', function(req, res) { Room.find() .where('_id') .in(user.rooms) .exec(function (err, records) {

我试图将一个JSON对象从pug传递到客户端JavaScript。下面是代码的结构。我呈现一个JSON对象,并从Node Express后端将其传递给帕格。代码如下:

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})
        })
})
console.log(trooms)
之后,该对象在我的pug文件中可用。现在我想把它传递给客户端脚本。我在我的
index.pug
文件中做了类似的事情

index.pug

script(src='/js/play.js').
    trooms = "#{myrooms}"
play.js

app.get('/myrooms', function(req, res) {
    Room.find()
        .where('_id')
        .in(user.rooms)
        .exec(function (err, records) {
            res.render('rooms/index', {myrooms : records})
        })
})
console.log(trooms)
它给出了“
troom
未定义”错误。我不知道怎样才能通过这个物体。根据一些旧的帖子,这是在玉器中工作。但是,我使用的是pug版本
2.0.0-rc.2

,您可以试试

var trooms = !{JSON.stringify(myrooms)}

在编写脚本之前,您必须先退出
rooms=“#{myrooms}”
。此外,还需要调用
JSON.parse('#{myrooms}')
来将JSON转换为对象。我尝试了
JSON.parse('{myrooms}')
但它不起作用。我将它恢复到旧版本的jade,这是可行的。我现在就用这个