Node JS将变量传递给Jade / Pug

时间:2016-06-26 23:51:02

标签: node.js pug

出于某种原因,我无法使用Node JS将变量传递给pug模板。

app.get("/", function (req, res) {
    res.render('index', { hello : 'Hey'} )
})

...

extends layout.pug

block content
    h1 #{hello} guy

这只会在index.html文件中返回“guy”

2 个答案:

答案 0 :(得分:13)

我认为你正在使用带有静态.html的“pug”(更新的jade)插件的JADE编码(#{hello}) - 完全错误。

按照以下几行:

  1. 首先使用

    app.set('views', __dirname + '/public/views');
    app.set('view engine', 'pug');
    
  2. 将此传递给第一次访问

    app.get('/', function (req, res) {
        res.render('index', { title: 'Hey', message: 'Hello there!'});
    });
    
  3. 比“/ public / views”中的模板文件“index.pug”中的echo

    html
       head
       title= title
    body
       h1= message
    

答案 1 :(得分:2)

试试这个..对我有用。

nodejs part / index.js

const router = require('express').Router();
router.get('/', (req, res, next) => {
    const testObj = {hello: 'Hey'};
    res.render('index', { testObj: JSON.stringify(testObj) });
});

pug / jade part /(index.pug)

script.
    var testObj = !{testObj};

我正在使用 pug 版本:2.0.3