首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >res.locals in app.use不起作用,但在res.render上发送选项

res.locals in app.use不起作用,但在res.render上发送选项
EN

Stack Overflow用户
提问于 2022-07-14 05:57:05
回答 1查看 58关注 0票数 0

帕格档案:

代码语言:javascript
运行
复制
...
- var paths = flatSitemap(sitemap);

app.js文件:

代码语言:javascript
运行
复制
var fsm = require('./routes/fsm.js');

app.set('port', process.env.PORT || 4109);
app.set('views', path.join(__dirname, 'src/pug'));
console.log(path.join(__dirname, 'src/pug'));
app.set('view engine', 'pug');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(function (req, res, next) {
  res.locals.flatSitemap = fsm.flatSitemap;
  next();
});
app.locals.flatSitemap = fsm.flatSitemap;

app.get('/', function(req, res) {
  res.render('./index', {flatSitemap: fsm.flatSitemap});   // works!!!
  res.render('./index');                                   // Not working
});

因此,当我使用选项使用res.render时,它是有效的,但是如果我不包括这些选项,并依赖于pug读取res.locals,它就不起作用,并返回"flatSitemap不是一个函数“。

EN

Stack Overflow用户

发布于 2022-07-26 11:29:30

res对象不会自动传递给视图。因此,flatSitemap不存在或不是一个函数的消息。您不会把它作为参数来附加。您可以使用二进制逻辑或运算符创建条件。

代码语言:javascript
运行
复制
app.get('/', function(req, res) {
  res.render('./index', { flatSitemap: res.locals.flatSitemap || fsm.flatSitemap });
});
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72975833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档