我可以将快速函数中的变量检索到哈巴狗模板的脚本中吗?

时间:2018-01-19 19:52:38

标签: express pug

我有一个快速函数,可以从mongoDB中检索一个变量(数组)

app.get('/route',function(req,res,next){
    User.find()
          .exec(function(err,result){
               if(err) throw err
               var outputMessage=result[0].message.split(/\\n/g)
               var myBooks=[]
               for(var i=0;i<outputMessage.length;i++){
                        myBooks.push(outputMessage[i])
                     }
               res.render('index',{books: myBooks}) 
            })

   }

和一个哈巴狗模板index.pug:

html
   head
     script(type='text/javascript')
        for book in books /*books coming from the express function in res.render('index',{books: myBooks}) */
           data.addRows([book,1]) /*data.addRows are object and method from Google Charts*/

在pug模板的脚本中(以及在头部内)使用express函数中的变量是否可行

1 个答案:

答案 0 :(得分:2)

您可以将books数组存储到javascript变量中,然后使用javascript foreach进行迭代:

html
    head
        script(type='text/javascript').

            var books = !{JSON.stringify(books)};

            books.forEach( function (book) {
                data.addRow([book,1]);
            });

不要忘记在.后告诉pug不解释下一个代码的点script(type='text/javascript')