2017-10-20 13 views
0

Je suis en train de mettre en place une application simple de routage, mais je continue à courir int l'erreur lors du rendu d'une page.Erreur: Module « html » ne fournit pas un moteur de vue (Express)

Error: Module "html" does not provide a view engine. 

Ce qui est étrange est que j'ai spécifié le moteur de vue dans mon dossier app.js mais je reçois toujours l'erreur

// app.js 

var express = require('express'); 
var app = express(); 
var router = express.Router(); 

// Need to import the route file 
var chef = require('./chef'); 
app.use('/chef', chef); 

// Set directory to contain the templates ('views') 
app.set('views', __dirname + '/views'); 

// Set view engine to use 
app.set('view engine', 'html'); 

app.use(function(err, req, res, next) { 
    console.error(err.stack); 
    res.status(500).send('Something broke!'); 
}); 


// chef.js 
var express = require('express'); 
var routes = express.Router(); 

routes.get('/', (req, res) => { 
    //res.send("I'm here!") 
    res.render('chef'); 
}); 

module.exports = routes; 

// views/chef.html 
Some HTML file here here .. 

Dans le fichier chef.js quand je veux juste test si la route travaille je décommenter res.send ... qui envoie « Je suis ici » au DOM.

Cependant chaque fois que j'essaie res.render de rendre la page chef.html je reçois l'erreur ci-dessus. Ce que je trouve bizarre parce que j'ai défini le moteur de vue dans app.js.

suggestions sur la façon de rendre mon fichier HTML?

Répondre

1

utilisation res.sendFile('/fileName.html'); au lieu de res.render()

pour l'envoi de fichiers, nous avons utilisé res.sendFile(fullPath) et si vous utilisez autre langue que HTML, alors vous devriez avoir à utiliser res.render().

res.render() pour le modèle comme ejs, pug etc.