【发布时间】:2012-06-03 06:14:57
【问题描述】:
我想知道我是否正在相应地构建我的 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。我也不认为这是一个问题,对象将指针返回到相同的内存空间的逻辑相同,所以我不会将内存使用量加倍或任何东西。
有没有更好/更简单的结构方式?
【问题讨论】:
标签: javascript node.js express restify