我正在尝试使用具有把手作为模板引擎的Express服务器来设置规范的meta标签。我无法弄清楚如何获取绝对的URL路径并将其传递给handlebars视图。我本打算在车把中创建一个辅助函数,但这将不在请求中,所以我真的不知道如何获取URL或如何进行此操作。我想动态地而不是手动地设置规范。谢谢。
这是我的简单服务器:
const express = require('express');
const router = require('./routes/router');
const handlebars = require('express-handlebars');
const PORT = process.env.PORT || 5000;
const path = require('path');
const app = express();
var hbs = handlebars.create({
defaultLayout: 'main',
helpers: {
canonical: function() {
//get absolute url path
}
}
});
app.use(express.json());
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
router(app);
app.listen(PORT, err => {
if (err) throw err;
console.log(`ready at http://localhost:${PORT}`);
});
答案 0 :(得分:0)
您不需要此帮手。您可以将值添加到res.locals
并通过把手访问。
app.use("*", function(req, res, next){
res.locals.absoluteUrl = absoluteUrl; // Note, you'll need to calculate this yourself
next();
});
在车把中,将其作为标准变量进行访问:
{{absoluteUrl}}