向Express app和req添加自定义属性.什么是最好的方式?

Mic*_*ole 4 javascript node.js express

我在脚下射击自己:

我想在我的Express应用程序中的app和req对象上提供config,core和mean.

我正在使用不在4.x API中的属性.我还应该知道什么?

将它们添加为属性是否存在问题?

// express.js
module.exports = function(db, config, meanModules) {

  var app = express();

  // ... 

  // Get mean-core
  var core = require('meanjs-core')(db, config);

  // Attach config, core, and modules to app    <==== POSSIBLE FOOT SHOOTING
  app.config = config;
  app.core = core;
  app.mean = meanModules;

  // Middleware to adjust req
  app.use(function(req, res, next) {
    // Add config, core, and modules to all requests  <==== POSSIBLE FOOT SHOOTING
    req.config = config;
    req.core = core;
    req.mean = meanModules;
    next();
  });

  // ...
}
Run Code Online (Sandbox Code Playgroud)

fur*_*oid 5

我建议将一个属性附加到可能永远不会发生冲突的应用程序,并从那里访问所有内容,例如app.myLibrary.

app.myLibrary = {config: config, core: core, mean: meanModules};
Run Code Online (Sandbox Code Playgroud)

并从路由/中间件中访问app.myLibrary:

req.app.myLibrary
Run Code Online (Sandbox Code Playgroud)

除非中间件中出现每个请求不同的动态,否则最好只使用它来访问它req.app.myLibrary.