帕格档案:
...
- var paths = flatSitemap(sitemap);
app.js文件:
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不是一个函数“。
发布于 2022-07-26 11:29:30
res
对象不会自动传递给视图。因此,flatSitemap
不存在或不是一个函数的消息。您不会把它作为参数来附加。您可以使用二进制逻辑或运算符创建条件。
app.get('/', function(req, res) {
res.render('./index', { flatSitemap: res.locals.flatSitemap || fsm.flatSitemap });
});
https://stackoverflow.com/questions/72975833
复制相似问题