我有一个包含 Express 的 Node 应用程序。到目前为止,我一直在使用 Swig 作为我的 View 引擎。我这样配置这个 View 引擎:
app.engine('html', swig.renderFile);
app.set('views', path.join(__dirname, '../views'));
app.set('view engine', 'html');
这种方法对我很有效。但是,由于 Swig 已被弃用,我正在尝试转移到 Nunjucks。为了做到这一点,我做了以下事情:
nunjucks.configure('views', {
autoescape: true,
cache: false,
express: app
});
app.engine('html', nunjucks.render);
app.set('views', path.join(__dirname, '../views'));
app.set('view engine', 'html');
这行不通。我收到运行时错误,但我无法判断实际抛出的错误是什么。为了加载最基本的 View ,我尝试加载以下 HTML 页面:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<h1>Hello</h1>
</body>
</html>
这是一个非常基本的 HTML View ,不使用任何模板。我只想加载一个 HTML View ,并将 nunjucks 设置为 View 引擎。即使这样,我仍然会遇到错误。
我可以看到 render function , 有一个回调。看起来回调有一个我可以查看的错误对象。但是,我不知道如何在 app.engine('html', nunjucks.render);
行中实际使用该回调。
任何见解将不胜感激
最佳答案
删除这些行:
app.engine('html', nunjucks.render);
app.set('views', path.join(__dirname, '../views'));
app.set('view engine', 'html');
更新代码:
var nunjucks = require('nunjucks');
var app = express();
// looks for html in views folder relative to current working directory
nunjucks.configure('views', {
autoescape: true,
cache: false,
express: app
});
app.get('/', function(req, res) {
res.render('index.html');
});
关于javascript - 在 Express 应用程序中使用 Nunjucks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781767/