2017-04-15 4 views
-2

이 질문에 대한 답변을 보았지만 아무런 도움이되지 않았습니다. 일부 솔루션으로 인해 더 많은 오류가 발생합니다.Error : Node.JS 및 Express로 'html'모듈을 찾을 수 없습니다.

내가하려는 것은 Node.JS를 사용하여 다른 페이지로 연결하는 것입니다. 평균 스택에 대해 조금 배웠으므로 노드, 익스프레스 및 앵귤러 (아직 획득하지 못함)를 사용하기로 결정했습니다. '/'경로가 아닌 다른 곳으로 이동하려고하면 'html'모듈을 찾을 수 없습니다.라는 오류 메시지가 나타납니다. 문제의 코드는 다음과 같습니다.

//dependencies 
var express = require('express'); 
var path = require('path'); 
var engines = require('consolidate') 

//variables 
var RUN_PORT = 8080; 
var VIDEO_IN_PORT = 45679; 
var CONTROL_OUT = 45678; 
var app = express(); 

app.use(express.static(path.join(__dirname, 'public'))); 

//index.html routing 
app.get('/', function(req, res){ 
    res.render("index.html"); 
}); 

//robot_control.html routing 
app.get('/robot_control', function(req, res){ 
    res.render("robot_control.html"); 
}); 

//error.html routing 
app.get('/error', function(req, res){ 
    res.render("error.html"); 
}); 

//showing that the program is running on the RUN_PORT 
app.listen(RUN_PORT, function(){ 
    console.log("Running on port " + RUN_PORT); 
}); 

여기서 볼 수없는 내용은 무엇입니까? 모든 것이 잘 보입니다. 내 package.json에 설치 한 것은 모두 Express입니다. 색인 페이지로 가도 괜찮지 만 오류가있는 것만 빼면 오류가 발생합니다.

답변

1

익스프레스에 .html 확장자를 가진 파일을 렌더링하는 방법을 알려주지 않았기 때문에이 문제는 res.render('SOMEFILE.html')을 사용하여 발생합니다.

당신이 (아직) 어떤 템플릿을 사용하지 않는 때문에, 당신이 사용할 수 있습니다 : 당신이 템플릿을 사용하여 시작하려는 경우

// Somewhere at the top: 
const path = require('path'); 
const VIEWS = path.join(__dirname, 'views'); 
... 

// In your route handlers: 
res.sendFile('index.html', { root : VIEWS }); 

을, 이쪽을 봐 : http://expressjs.com/en/guide/using-template-engines.html