首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何外包Node.js RESTful API调用?

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

Stack Overflow用户
提问于 2016-06-23 21:37:30
回答 2查看 293关注 0票数 0

目前我有下面的代码和更多的调用文件api.js,但现在文件是如此之大,以至于很难再找到任何东西,所以我想在不同的文件中外包不同的路由,如api_admin.js,api_user.js,api_general.js,是否可以将不同的调用外包到不同的文件中并包括它们?

代码语言:javascript
复制
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 ) {
    // ...
} );
EN

回答 2

Stack Overflow用户

发布于 2016-06-23 21:39:58

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

例如,下面是如何为admin划分一些路由的方法:

api.js

代码语言:javascript
复制
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

代码语言:javascript
复制
module.exports = function(router) {

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

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

您可以对任何其他路由组重复此模式,在模块构造函数中传递加载的模块app对象或router对象。如果您有几个路由模块想要使用的公共功能,那么将它们放在自己的模块中,从该模块导出它们,然后将它们require()到想要使用它们的任何模块中。

票数 1
EN

Stack Overflow用户

发布于 2016-06-23 21:42:07

尝试使用require和module.exports

代码语言:javascript
复制
var user = require('./file');

文件内容示例:

代码语言:javascript
复制
var User = function(name, email) {
    this.name = name;
    this.email = email;
};
module.exports = User;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37993282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档