如何外包Node.js RESTful API调用?

时间:2016-06-23 13:37:30

标签: javascript node.js express

目前我在File 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 ) {
    // ...
} );

2 个答案:

答案 0 :(得分:1)

只需创建一个新模块。将一堆路由处理程序放在该新模块中。然后,从api.js加载新模块,并将其传递给模块构造函数中的approuter对象。

例如,您可以在这里找出管理员的一些路线:

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()将它们导入任何想要使用它们的模块。

答案 1 :(得分:0)

尝试使用require和module.exports

> 1.9

文件内容示例:

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