我想知道我是否正在相应地构建我的 nodejs 应用程序以实现最佳性能。我主要关心的是我如何传递围绕模块移动我的应用程序引用。
基本上在我的 app.js 文件中,我声明了我所有的要求、库等:
var app = {
config : require('../../config.json'),
restify : require('restify'),
path : require('path'),
mongo : require('mongodb'),
model : require('./models.js'),
step : require('step'),
q : require('q'),
api : require('./api_util.js'),
underscore : require('underscore')
};
在我的导出中,我传递了整个 app 对象。现在,鉴于我对 JavaScript 的了解(如果我错了,您可以纠正我),这不会创建对象的新实例,它只会将对象作为指针传入并引用内存中的同一个对象。
现在我发现自己在做的事情(为了方便)是在我的 restify 库中(同样可以使用 Express 完成),我将 app 值附加到服务器请求对象,如下所示:
app.server.pre(function (request, response, next) {
request.app = app;
return next();
});
因此,在每个请求中,如果我需要快速访问我的任何库声明、配置等。我可以轻松访问 request.app。我也不认为这是一个问题,对象的相同逻辑将指针返回到相同的内存空间,所以我不会将内存使用量加倍或任何东西。
有没有更好/更简单的方法来构建它?