Node.js用于依赖项VS的一个文件导出器,要求每个模块中的每个依赖项

时间:2018-12-29 11:57:44

标签: javascript node.js

我想使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);

如您所见,中间件可能会一遍又一遍地加载,例如令牌和速率限制器中间件。

我只想从双方简化它:

  1. 更容易注册新的模块/中间件/依赖项
  2. 更容易调用存在的模块/中间件/依赖项

所以我想到了创建一个名为 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中询问,以便确定是否有某种方式可能会导致这种工作方式出现问题-在我使用此方式进行项目之前。

0 个答案:

没有答案