Error: No default engine was specified and no extension was provided (ExpressJs & nunjucks)
Error: No default engine was specified and no extension was provided (ExpressJs & nunjucks)
我正在尝试将 nunjucks 模板引擎与 Expres js 结合使用。该页面已正确呈现,但错误出现在控制台上。
Error: No default engine was specified and no extension was provided.
来自 nunjucks 文档
var app = express();
nunjucks.configure('views', {
autoescape: true,
express: app
});
app.get('/', function(req, res) {
res.render('index.html');
});
我追踪了错误,发现它来自 at new NunjucksView (C:\Users\future\Desktop\New folder (2)\node_modules\nunjucks\src\express-app.js:13:13)
在nodemodules/nunjucks/src/express-app.js
中抛出错误
if (!this.ext && !this.defaultEngine) {
throw new Error('No default engine was specified and no extension was provided.');
}
据我了解,这意味着未设置 defaultEngine。
如何在使用 nunjucks 时 设置默认模板引擎。
您应该将 express 的默认 view engine
设置为与 nunjucks
相同的扩展名 known/rendered
const express = require('express');
const nunjucks = require('nunjucks');
const app = express();
// set default express engine and extension
app.engine('html', nunjucks.render);
app.set('view engine', 'html');
// configure nunjucks engine
nunjucks.configure('views', {
autoescape: true,
express: app
});
app.get('/', function(req, res) {
res.render('index');
});
app.listen(9090, () => {
console.log('http://localhost:9090')
});
如果你想更改 templates/views 扩展名,你可以这样更改:
app.engine('nunj', nunjucks.render);
app.set('view engine', 'nunj');
然后重命名您的 templates/views index.nunj
我正在尝试将 nunjucks 模板引擎与 Expres js 结合使用。该页面已正确呈现,但错误出现在控制台上。
Error: No default engine was specified and no extension was provided.
来自 nunjucks 文档
var app = express();
nunjucks.configure('views', {
autoescape: true,
express: app
});
app.get('/', function(req, res) {
res.render('index.html');
});
我追踪了错误,发现它来自 at new NunjucksView (C:\Users\future\Desktop\New folder (2)\node_modules\nunjucks\src\express-app.js:13:13)
在nodemodules/nunjucks/src/express-app.js
中抛出错误
if (!this.ext && !this.defaultEngine) {
throw new Error('No default engine was specified and no extension was provided.');
}
据我了解,这意味着未设置 defaultEngine。
如何在使用 nunjucks 时 设置默认模板引擎。
您应该将 express 的默认 view engine
设置为与 nunjucks
const express = require('express');
const nunjucks = require('nunjucks');
const app = express();
// set default express engine and extension
app.engine('html', nunjucks.render);
app.set('view engine', 'html');
// configure nunjucks engine
nunjucks.configure('views', {
autoescape: true,
express: app
});
app.get('/', function(req, res) {
res.render('index');
});
app.listen(9090, () => {
console.log('http://localhost:9090')
});
如果你想更改 templates/views 扩展名,你可以这样更改:
app.engine('nunj', nunjucks.render);
app.set('view engine', 'nunj');
然后重命名您的 templates/views index.nunj