Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass a Pug JSON object to client side JavaScript

I am trying to pass a JSON object from pug to client side JavaScript. Here's how the code is structured. I render a JSON object and pass it to Pug from my Node-Express backend. Code below:

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})
        })
})

After that this object is available in my pug file. Now I want to pass it to a client side script. I am doing something like this in my index.pug file.

index.pug:

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

play.js:

console.log(trooms)

It gives me 'troom is not defined' error. I don't know how I can pass this object. According to some old post this was working in jade. However, I am using the pug version 2.0.0-rc.2.

like image 322
Shadid Avatar asked Jan 04 '23 14:01

Shadid


1 Answers

You can try

var trooms = !{JSON.stringify(myrooms)}
like image 175
Popoi Menenet Avatar answered Jan 17 '23 17:01

Popoi Menenet