2016-08-09 2 views
0

내 루트 폴더에 다음 내용이있는 server.js이 있습니다.매개 변수를 전달하지 않고 server.js에서 routes.js로가는 경로

// routes.js 
app.get('/', HomeController.index); 
app.get('/login', UserController.getLogin); 

나는 그것이, app, HomeControllerUserControllerundefined을하게 할 때 : 그것은 다음과 같습니다 있도록

// server.js 
const app = express(); 
const HomeController = require("./controllers/HomeController"); 
const UserController = require("./controllers/UserController"); 
app.use(...) 
app.use(...) 

app.get('/', HomeController.index); 
app.get('/login', UserController.getLogin); 

나는 routes.js라는 파일에 app.get 엔드 포인트를 먹고 싶어.

나는 그들과 같이 routes.js에 전달할 수 있습니다 내가 새로운 컨트롤러를 만드는 경우, 내가 routes.js 파일로를 통과해야하므로

require("routes")(app, HomeController, UserController); 

그러나, 호환 미래되지 않습니다.

대신 routes.jsserver.js 범위에 액세스하도록 알릴 수 있습니까? routes.js을 통해 server.js에서 변수에 액세스 할 수 있습니까?

답변

0

왜 당신은 ExpressJS의 기본 패턴을 사용하지 않았습니까? 같은 :

var apiRoutes = require('./api_server/routes/api'); 

app.use('/api', apiRoutes); 

.../경로/api.js :

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

var loginCtrl = require('../controllers/auth/login'); 

router.post('/authenticate', loginCtrl.login); 
router.post('/resetAdminPassword', loginCtrl.resetAdmin); 
// router.get('/tieba/:id', tiebaCtrl.one); 

module.exports = router; 
관련 문제