2016-06-23 6 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

可能な複製、どのように私は私の他のファイルからの機能 "が含まれる" のか? ](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'); 

ファイル内容の例を使用してください:Node.jsの中[の

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

これは明らかですが、私は設定ファイル。しかし、どのように高速道路でそれを使用するには?アウトソースされたファイル内で明示的に指定するものは使用できません。 –

関連する問題