2017-01-28 1 views
2

주 파일의 모든 경로를 포함하여 내 app.js를 작성하고 모든 것이 잘 작동하고 있습니다. 내 목표는 다른 파일의 경로를 이동하여 프로젝트를보다 명확하게 만드는 것이지만 작동하지 않습니다. 미들웨어 함수 대신 객체를 전달하고 있는데 올바른 방법으로이를 수정하는 방법을 알지 못합니다. 다음 코드Nodejs Express : 개별 파일의 경로

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var morgan = require('morgan'); 
var mongoose = require('mongoose'); 
var myRoutes = require('./app/routes/myRoutes.js'); 

... 

//parser for getting info from POST and/or URL parameters 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

//for log requests to console 
app.use(morgan('dev')); 

app.use('/myRoutes', myRoutes); 

app.get('/',function(req,res){ 
    res.end('Welcome Page!'); 
}); 

//Server Start 
app.listen(port); 
console.log('server start at port ' + port); 

앱/경로/myRoutes.js 포함 :

var express = require('express'); 
var myRoutes = express.Router(); 

myRoutes.route('/') 
    .get(function(req, res, next){ 
     res.end('myRoute Get'); 
    }) 
    .post(function(req, res, next){ 
     res.end('myRoute Post'); 
    }); 

module.export = myRoutes; 
: 나는 또한이 시도

var express = require('express'); 
... 
var myRoutes = express.Router(); 

myRoutes.get('/users',function(req,res){ 
... 
}); 

myRoutes.post('/setup',function(req,res){ 
    ... 
}); 

myRoutes.post('/remove', function(req,res){ 
    ... 
}); 

module.export = myRoutes; 

그래서이 내 app.js 파일입니다

하지만 다시 미들웨어 기능을 전달하지 않는 것처럼 보입니다.

+0

var에 myRoutes의 =이 요구하는'시도 routes 폴더 안에 모든 경로를 정의처럼 각각의 Router 모듈을 수출 말을

const loader = require('require-dir'); var app = express(); var routes = loader('./routes'); for (route in routes){ app.use("/"+route,routes[route]); } 

불필요한처럼 모든 경로를로드 할 require-dir 모듈을 사용 ./app/routes/myRoutes ');'myRoutes가 null인지 아닌지 확인하십시오. –

+0

파일이 올바르게로드되었는지 확인하십시오. 문제는 객체 대신 미들웨어 기능을 전달하는 것과 관련이 있습니다. – pittuzzo

+0

무엇이 오류입니까? –

답변

2

내 두 번째 옵션 코드

var express = require('express'); 
var myRoutes = express.Router(); 

myRoutes.route('/') 
    .get(function(req, res, next){ 
     res.end('myRoute Get'); 
    }) 
    .post(function(req, res, next){ 
     res.end('myRoute Post'); 
    }); 

module.export = myRoutes; 

는 잘 작동! 난 그냥 잘못된 방법으로

module.exports = myRoutes; 
0

module.export = myRoutes; 

isntead 안녕이 질문에 대한 자세한 팁을 더 그것을 물품. 당신은 주요 js 파일을 확실히 경로를 많이로드해야합니다 그리고 나는 그들 모두를 가져 오는 것은 많은 일을 발견했습니다. 오히려 '(

var router = express.Router(); 

router.get(....); 

module.exports = router;