Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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
Javascript 使用express router时html呈现不显示nunjucks变量_Javascript_Express_Nunjucks - Fatal编程技术网

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}
,现在我的模板呈现了对象变量