2015-02-15 2 views
2

Моего ./controller/index.js выглядит как сильфонКак включить службу автоматически с помощью узла и express.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')); 
} 

под контроллером у меня есть

└── controllers 
    ├── users.controller.js 
    ├── roles.controller.js 
   └── authentication.controller.js 

моей проблема, если я добавить любого новый файл под папкой/контроллером, он должен динамически добавлять в контроллер/index.js

например, если добавить add.js в папку контроллера, мой файл controller/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')); 
} 

, пожалуйста, помогите мне.

ответ

1

Вы можете создать 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) 
+0

спасибо за ваш ответ, я проверю. –

+0

@PJohnRaj дайте мне знать, если вы столкнулись с проблемой, я использую этот шаблон alote –

+1

Вы рок gi –