El origen del error describe los requisitos:
if (!ext && !this.defaultEngine) throw new Error('No default engine was specified and no extension was provided.');
Express espera que especifique la vista con su extensión:
res.render('index.html');
O especifique un motor de visualización predeterminado y asigne un nombre a sus vistas:
app.set('view engine', 'ejs');
// `res.render('index')` renders `index.ejs`
Con respecto a su edición:
El problema es con esta línea:
app.engine('.html', require('ejs').renderFile());
Como demuestra la documentación
, app.engine()
está esperando una function
referencia. Puede hacer esto simplemente eliminando ()
esa llamada renderFile
:
app.engine('.html', require('ejs').renderFile);