MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Perché Express mi dice che il mio motore di visualizzazione predefinito non è definito?

La fonte dell'errore descrive i requisiti:

if (!ext && !this.defaultEngine) throw new Error('No default engine was specified and no extension was provided.');

Express si aspetta che tu specifichi la vista con la sua estensione:

res.render('index.html');

Oppure specifica un motore di visualizzazione predefinito e dai un nome alle tue visualizzazioni:

app.set('view engine', 'ejs');

// `res.render('index')` renders `index.ejs`

Per quanto riguarda la tua modifica:

Il problema è con questa linea:

app.engine('.html', require('ejs').renderFile());

Come dimostra la documentazione , app.engine() si aspetta una function riferimento. Puoi farlo semplicemente rimuovendo il () quella chiamata renderFile :

app.engine('.html', require('ejs').renderFile);