Ошибка: не был указан движок по умолчанию и расширение не было предоставлено (ExpressJs & nunjucks) - PullRequest
1 голос
/ 24 марта 2019

Я пытаюсь использовать шаблонизатор nunjucks с Expres js. Страница отображается правильно, но на консоли появляется ошибка. Error: No default engine was specified and no extension was provided.

из нунжук документы

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 не установлен.

Github Repo


Как установить механизм шаблонов по умолчанию при использовании nunjucks.

1 Ответ

1 голос
/ 26 марта 2019

Вы должны установить значение по умолчанию 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')
});

, если вы хотите изменить расширение шаблонов / представлений, вы можете изменить его следующим образом.:

app.engine('nunj', nunjucks.render);
app.set('view engine', 'nunj');

и затем переименуйте ваши шаблоны / представления index.nunj

...