如何使用node和express.js自动包含服务
我的./controller/index.js看起来像波纹pipe
module.exports = function(app) { app.use('/api/user/session', require('./authentication.controller')); app.use('/api/users', require('./users.controller.js')); app.use('/api/roles', require('./roles.controller.js')); app.use('/api/tenants', require('./tenants.controller.js')); }
我有控制器
└── controllers ├── users.controller.js ├── roles.controller.js └── authentication.controller.js
我的问题,如果我添加/控制器文件夹下的任何新文件,它应该dynamic地添加在控制器/ index.js
例如,如果我添加permission.js控制器文件夹下我的控制器/ index.js文件应该变得像下图。
module.exports = function(app) { app.use('/api/user/session', require('./authentication.controller')); app.use('/api/users', require('./users.controller.js')); app.use('/api/roles', require('./roles.controller.js')); app.use('/api/tenants', require('./tenants.controller.js')); app.use('/api/permission', require('./permission.controller.js')); }
请帮帮我。
您可以在执行以下操作的控制器文件夹中创build一个index.js文件:
./controllers/index.js
'use strict'; var fs = require('fs'), path = require('path'); //load all routes in dir module.exports = function (server) { fs .readdirSync(__dirname) .filter(function (file) { return (file.indexOf(".") !== -1) && (file !== "index.js"); }) .forEach(function (file) { file = file.split('.')[0]; server.use('/api/' + file, require(path.join(__dirname, file)); }); };
app.js
//load all controllers and routes require('.controllers')(server)