在 server.js 我有以下内容:
app.use( require( './server/rest-api/v1/products' ) );
app.use( require( './server/rest-api/v1/product-categories' ) );
app.use( require( './server/rest-api/v1/measuring-units' ) );
app.use( require( './server/rest-api/v1/inventory' ) );
app.use( require( './server/rest-api/v1/suppliers' ) );
...
我想要的是/server/rest-api/v1
一个模块,这意味着它需要一个index.js
,但它包含什么,以便我只需要在{{}}执行以下操作{1}}:
server.js
如果有必要了解我的要求,这里有我作为模块的其中一个文件夹:
/server/rest-api/v1/products/index.js
app.use( require( './server/rest-api/v1');
答案 0 :(得分:2)
您希望/server/rest-api/v1/index.js
公开使用子路由器的唯一Router
,每个子路由器对应一个文件夹(产品, product_categories 等等。)
<强> /server/rest-api/v1/index.js 强>
var express = require('express'),
router = express.Router(),
product_router = require('./products'),
product_categories_router = require('./product_categories');
router.use(product_router);
router.use(product_categories_router);
// etc.
module.exports = router;
在旁注中,如果您以这种方式处理多条路线,在安装路由器时,定义API入口点一次('/api/v1'
)可能更方便。通过这种方式,您的“业务”路由器本身不需要知道输入路径(对它们来说无关紧要),如果您需要一天更改该路径,这很方便。
然后,这取决于您以及您希望如何设计服务器:)
示例:
<强> server.js 强>
app.use('/api/v1', require('./server/rest-api/v1'));
<强> /server/rest-api/v1/index.js 强>
var express = require('express'),
router = express.Router(),
product_router = require('./products');
router.use('/purchases/products', product_router);
module.exports = router;
<强> /server/rest-api/v1/products/index.js 强>
var express = require('express'),
router = express.Router(),
create_product = require('./create-product.controller');
router.route('/new').post(create_product.post);
module.exports = router;