Javascript 使用express router时html呈现不显示nunjucks变量
答:我发现Javascript 使用express router时html呈现不显示nunjucks变量,javascript,express,nunjucks,Javascript,Express,Nunjucks,答:我发现数据没有传递到nunjucks模板。我在index.njk中将{{data.title}}和{{data.sub}}替换为{title}和{sub},现在我的模板呈现了对象变量。谢谢antonmyrberg&Petar 我试图将一个对象传递给我的nunjucks模板,该对象位于正在导出到express router的模块中的res.render中。当我访问路由时,index.njk会渲染,但不会显示对象属性 app.js // -- Create express application
数据
没有传递到nunjucks模板。我在index.njk中将{{data.title}}
和{{data.sub}}
替换为{title}
和{sub}
,现在我的模板呈现了对象变量。谢谢antonmyrberg&Petar
我试图将一个对象传递给我的nunjucks模板,该对象位于正在导出到express router的模块中的res.render中。当我访问路由时,index.njk会渲染,但不会显示对象属性
app.js
// -- Create express application --
const express = require('express');
const app = express();
// Require in Express Router
const router = require('./router');
// Require in Nunjucks and configure nujucks to install to Express
const nunjucks = require('nunjucks');
nunjucks.configure('views', {
express: app
});
// index page
app.use('/', router);
// -- Listen on port 3000 --
app.listen(3000, () => {
console.log('Listening on Port 3000');
});
路由器/index.js
const express = require('express');
const router = express.Router();
let index = require('../modules/index.js');
router
.route('/')
.get(index.landing);
module.exports = router;
我使用app.get from app.js运行相同的模板,并使用module.exports.landing中的相同代码运行该模板,在呈现模板时显示对象中的变量。但我无法让它与这种布局一起工作
模块/index.js
module.exports.landing = (req, res) => {
console.log('works');
let data = {
title: 'Nunjucks',
sub: 'Using nunjucks'
} ;
res.render('index.njk', data);
}
视图/索引.njk
<body>
<h1>{{data.title}}</h1>
<p>{{data.sub}}</p>
</body>
{{data.title}
{{data.sub}
我自己也没用过NUNJUCK,但我猜你误解了事情的运作方式
let data = {
title: 'Nunjucks',
sub: 'Using nunjucks'
};
res.render('index.njk', data);
也可以通过只返回一个匿名的{}
来实现
res.render('index.njk', {
title: 'Nunjucks',
sub: 'Using nunjucks'
});
您对
数据的引用
不会传递给模板,只传递给包含标题
和子项
的对象。你试过引用{{title}}
和{{sub}}
吗?我自己没有使用Nunjucks,但我猜你误解了事情的运作方式
let data = {
title: 'Nunjucks',
sub: 'Using nunjucks'
};
res.render('index.njk', data);
也可以通过只返回一个匿名的{}
来实现
res.render('index.njk', {
title: 'Nunjucks',
sub: 'Using nunjucks'
});
您对
数据的引用
不会传递给模板,只传递给包含标题
和子项
的对象。您是否尝试过只引用{{title}
和{{sub}
?在调用视图文件中的局部变量时,调用
res.render('index.njk', data);
和
res.render('index.njk', {title: 'Nunjucks', sub: 'Using nunjucks'});
因此,要回答您的问题,请尝试在模板中编写以下内容:
```
{{title}}
{{sub}}
```调用视图文件中的局部变量时,调用
res.render('index.njk', data);
和
res.render('index.njk', {title: 'Nunjucks', sub: 'Using nunjucks'});
因此,要回答您的问题,请尝试在模板中编写以下内容:
```
{{title}}
{{sub}}
```我发现
数据
没有传递到nunjucks模板。我将index.njk中的{{data.title}}
和{data.sub}}
替换为{title}
和{sub}
,现在我的模板呈现了对象变量。我发现数据
没有传递到nunjucks模板。我在index.njk中将{{data.title}}
和{{data.sub}}
替换为{title}
和{sub}
,现在我的模板呈现了对象变量