![](/img/trans.png)
[英]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.