2017-10-20 5 views
0

간단한 라우팅 응용 프로그램을 설정하려고하지만 페이지를 렌더링 할 때 int를 계속 실행합니다.오류 : 모듈 "html"이보기 엔진을 제공하지 않습니다. (Express)

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

어떤 이상한 것은 내 app.js 파일의보기 엔진을 지정했지만 난 그냥 원하는 때 여전히 chef.js 파일에서 오류

// 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 .. 

을 얻고있다 경로가 작동하는지 테스트합니다. res.send ...의 주석 처리를 제거하여 DOM에 "I 'm here"를 보냅니다.

하지만 res.render를 사용하여 chef.html 페이지를 렌더링 할 때마다 위의 오류가 발생합니다. app.js에서 뷰 엔진을 설정 했으므로 이상하게 느껴집니다.

내 HTML 파일을 렌더링하는 방법에 대한 제안 사항이 있습니까? 파일을 전송하는

답변

1

사용 res.sendFile('/fileName.html'); 대신 res.render()

, 우리는 res.sendFile(fullPath)을 사용하고 HTML 언어 이외의 사용하는 경우 다음 res.render를 사용해야한다().

res.render()ejs, pug 등과 같은 템플릿 용