2016-06-23 5 views
0

현재 다음 코드와 훨씬 더 많은 파일 api.js를 호출하지만 이제는 파일이 너무 커서 어떤 것도 찾을 수 없으므로 api_admin.js와 같은 다른 파일에서 다른 경로를 아웃소싱하고 싶습니다. , api_user.js, api_general.js, 다른 파일에 다른 호출을 아웃소싱하고 포함시킬 수 있습니까?Node.js RESTful API 호출을 아웃소싱하는 방법은 무엇입니까?

app.use('/assets', express.static(__dirname + '/public/assets')); 

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

// Serve Partials 
app.get('/views/:name', function(req, res) { 
    // ... 
}); 

app.get('/views/user/:name', function(req, res) { 
    // ... 
}); 

app.get('/views/admin/:name', function(req, res) { 
    // ... 
}); 

// Serve Data 
var router = express.Router(); 
app.use('/v1', router); 
router.post('/user/get/info', function(req, res) { 
    // ... 
}); 

router.post('/admin/user/list', function(req, res) { 
    // ... 
}); 

router.post('/admin/apps/list', function(req, res) { 
    // ... 
}); 
+0

[Node.js를에서, 어떻게 내 다른 파일의 기능을 "포함"할의 가능한 중복? ] (http://stackoverflow.com/questions/5797852/in-node-js-how-do-i-include-functions-from-my-other-files) – Dominik

답변

1

그냥 새 모듈을 만드십시오. 새 모듈에 여러 경로 처리기를 추가하십시오. 그런 다음 새 모듈을 api.js에서로드하고 app 또는 router 개체를 모듈 생성자에 전달합니다. 당신은 어떤이 패턴을 반복 할 수 있습니다

api.js

app.use('/assets', express.static(__dirname + '/public/assets')); 

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

// Serve Partials 
app.get('/views/:name', function(req, res) { 
    // ... 
}); 

app.get('/views/user/:name', function(req, res) { 
    // ... 
}); 

app.get('/views/admin/:name', function(req, res) { 
    // ... 
}); 

// Serve Data 
var router = express.Router(); 
app.use('/v1', router); 
router.post('/user/get/info', function(req, res) { 
    // ... 
}); 

// load and initialize admin routes 
require('api_admin.js')(router); 

api_admin.js

module.exports = function(router) { 

    router.post('/admin/user/list', function(req, res) { 
     // ... 
    }); 

    router.post('/admin/apps/list', function(req, res) { 
     // ... 
    }); 
} 

:

예를 들어, 여기 당신이 관리자에 대한 경로의 일부를 깰 방법 로드 된 모듈을 app 오브젝트 또는 모듈 생성자의 router 오브젝트를 전달하는 다른 라우트 그룹. 여러 라우팅 모듈이 사용하고자하는 일반적인 기능을 가지고 있다면, 그것들을 자신의 모듈에 넣고, 그 모듈에서 내 보낸 다음 require() 그들을 사용하고자하는 모듈에 내 보낸다.

0

시도가 필요 사용하고 module.exports

var user = require('./file'); 

파일 콘텐츠 예 :

var User = function(name, email) { 
    this.name = name; 
    this.email = email; 
}; 
module.exports = User; 
+0

분명히, 나는 그것을 config 파일에 사용한다. . 그러나 급행 노선과 함께 사용하는 방법은 무엇입니까? 아웃소싱 된 파일에는 명시 적으로 지정된 것을 사용할 수 없습니다. –

관련 문제