2017-11-26 4 views
0

노드 js 애플리케이션의 환경을 설정 중입니다. 그러나 뷰/ejs 파일이 렌더링되지 않습니다. 내가하는 경우 :ejs res.render를 사용하는 노드 js 라우팅이 작동하지 않지만 res.send가 수행합니다.

app.get("/", function(req, res){ 

res.send('Something'); 
}); 

이것은 작동합니다. 그러나, 나는 (인덱스, EJS 파일 필요) 경우 : 명령 행에서

app.get("/", function(req, res){ 

res.render(index); 
}); 

그것은 웹에서 cleint 측에 "인덱스가 정의되지 않은"내가 할 작동하지 않습니다,하지만 오류가 발생했습니다. 여기

는 app.js입니다 :

var express = require("express"); 
var path = require("path"); 

var app = express(); 
app.set('view engine', 'ejs'); 
app.set('views', path.join(__dirname, 'views')); 

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



app.get("/", function(req, res){ 

res.send('Something'); 
}); 

app.get("/", function(req, res){ 

res.render(index); 
}); 


const port = process.env.PORT || 3000 
app.listen(port, function() { 
console.log(`Express is running on port ${port}`) 
}) 

가 app.set 매개 변수에 문제가, 또는 뭔가 바뀌 었습니까? 나는 날짜가 정해지지 않았을지도 모르는 튜토리얼을 따라 가고 있지만, 문서를 확인하면서, 나는 문제를 보지 못했다.

그래서, 여기에 잘못된 점이 있습니다. ejs로 라우팅하는 새로운 방법이 있습니까? 나는 부분이 지금 사라 졌다는 것을 안다. 이것은 더 이상 ejs 파일을 의미하지 않습니까? 그렇다면 지금 어떻게해야할까요? html 파일을 렌더링하면됩니까?

감사

답변

1

글쎄, 난 당신이 변수처럼 쓰기 때문에 정의되지 않은 표현하지만 여기에 인덱스의 프로 아니에요. 이와 비슷한 것을 사용해보십시오.

res.render(path.resolve(__dirname + "/views/index")); 
+0

@Frank 이런 식으로 표현했습니다. 나는 https://www.youtube.com/watch?v=gnsO8-xJ8rs를보고 있으며 그가 게시 한 그대로 사용했음을 맹세한다. 감사 – ptts