2016-06-30 13 views
0

나는 안드로이드 애플 리케이션을위한 노드 백엔드를 구축하고 그것에 문제가있는 중이 야. localhost : 8080에 연결할 때 나는 항상 GET /을 얻을 수 없습니다.Node.js 및 익스프레스 GET/

/** Dependencies **/ 
var express = require('express'); 
var connect = require('connect'); 
var app  = express(); 
var port = process.env.PORT || 8080; 

//Configurations 
app.use(express.static(__dirname + '/public')); 
app.use(connect.logger('dev')); 
app.use(connect.json()); 
app.use(connect.urlencoded()); 

//Routes 

require('./routes/routes.js'); 

app.listen(port); 
console.log("The App is running on port " + port); 

이것은 route.js 파일은 다음과 같습니다 : 여기

는 app.js 내 코드입니다

var app  = module.exports ; 

module.exports = function(app){ 
    app.get('/', function(req, res){ 
     res.end("Node-Android"); 
    }); 
} 

여전히 나는 점점 오전 얻을 수 없다/모든 시간은 로컬 호스트로 이동하려고 : 8080/

나는 뭔가를 놓치고 있습니까? 나는 끔찍한 잘못을 저질렀습니까? 희망 나는 사람이 :)

답변

2

귀하의 routes.js 모듈이 라인 인수합니다 (app 객체)가 필요합니다 생성자 함수 선언

require('./routes/routes.js'); 

을 그 모듈을로드하는 중이지만 결코 생성자를 호출하지 않는다는 것을 의미합니다. 그래서 대신에, 당신은이 설정을 변경해야합니다 이것에

require('./routes/routes.js'); 

:

require('./routes/routes.js')(app); 

생성자를 호출하고 그것을 그 다음의 경로를 초기화하는 데 사용할 수있는 원하는 app 객체를 전달합니다. 이 작업을 수행 할 경우


는 또한 모듈의 코드 오해의 소지가 불필요한 라인을 가지고 :

app 특정 변수가 모듈에서 임의의 장소에서 사용하지 않고 그것 때문에 오해의 소지가 있다고
var app  = module.exports ; 

생성자 함수에 대한 app 매개 변수와 동일한 이름을가집니다. routes.js 모듈에서 해당 행을 삭제해야합니다. 오해의 소지가 있으며 불필요합니다.

+0

철저한 답변을 보내 주셔서 감사합니다. 나는 지금 일할 수있어! –

+0

@OskarMartin - 여기 새로 왔을 수도 있으므로 질문에 대한 답변이있는 경우 최상의 답 옆에있는 녹색 체크 표시를 클릭해야합니다. 그러면 커뮤니티에 질문에 대한 답변이 표시되고 적절한 절차를 수행 한 데 대한 평판 포인트를 얻을 수 있습니다. – jfriend00

+0

머리를 주셔서 감사합니다! –

2
require('./routes/routes.js'); 

require('./routes/routes.js')(app)해야한다 여기에서 도움을받을;

module.exports = function(app){ ... } 

그러나, 당신은 단지이 같은 모듈을 포함하고 있습니다 :

관련 문제