我想使Node.js的工作更加轻松。 而且我想使代码看起来更具可读性。
这是一些路由器页面的示例:
var Token = require('../../app/dependencies/token-middleware');
var Ratelimit = require('../../app/dependencies/ratelimit-middleware');
var createUserHandler = require('./api/create-user');
app.post("/users", Token.validate(), Ratelimit.validate(), createUserHandler);
如您所见,中间件可能会一遍又一遍地加载,例如令牌和速率限制器中间件。
我只想从双方简化它:
所以我想到了创建一个名为 dependencies.js 的文件。 一个名为 middlewares.js 的文件和一个名为 modules.js
的文件它们将存储在应用程序目录中-这是项目的“ head”文件夹,并且其中的内容将由整个服务器中的任何模块使用。
可以执行以下操作:
// dependencies.js
module.exports = {
Db: psuedocode new db connection,
Joi: require('joi),
Router: psuedocode new express router,
Cast: psuedocode new manager handling the responses,
...
}
// middlewares.js
module.exports = {
Token: psuedocode new token middleware,
Ratelimit: psuedocode new rate limit middleware,
...
}
// users-router.js
const {
Token,
Ratelimitter,
...
} = require('../../app/middlewares');
const {
Db,
Joi,
...
} = require('../../app/dependencies');
或者甚至将index-router.js文件中的解析设置为ES6样式:
// index-router.js
let { ... } = require('../../app/dependencies); // really not sure if this is the write syntax (please fix it if it doesn't)
// and then use:
console.log(Db) // will not be undefined!
这与最佳做法更相关,但是我在Stackoverflow中询问,以便确定是否有某种方式可能会导致这种工作方式出现问题-在我使用此方式进行项目之前。