[英]RestFul API with express and node.js crashed everytime how to fix that?
[英]How to outsource Node.js RESTful API calls?
目前,我在文件api.js中擁有以下代碼和更多調用,但是現在文件太大,以至於再也找不到任何內容,因此我想將不同的路由外包給不同的文件,例如api_admin.js,api_user .js,api_general.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 ) {
// ...
} );
router.post( '/admin/user/list', function( req, res ) {
// ...
} );
router.post( '/admin/apps/list', function( req, res ) {
// ...
} );
只需創建一個新模塊即可。 將一堆路由處理程序放入該新模塊中。 然后,從api.js
加載該新模塊,並將其傳遞給模塊構造函數中的app
或router
對象。
例如,以下是您分解一些admin路線的方法:
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()
集成到要使用它們的任何模塊中。
嘗試使用require和module.exports
var user = require('./file');
文件內容示例:
var User = function(name, email) {
this.name = name;
this.email = email;
};
module.exports = User;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.