【发布时间】:2015-09-04 00:53:10
【问题描述】:
在节点应用程序中,您通常会像这样开始加载一些模块:
var express = require('express')
, app = express()
, mongodb = require('mongodb')
, http = require('http');
现在,假设您有一个如下所示的 routes.js 文件:
module.exports = function(app) {
app.get('/', function(req, res) {
res.render('homepage');
});
// other routes
};
因此,当您调用该 routes.js 文件时,您会传递 app var:
require('./routes')(app);
我的问题是:那里发生了什么?将 app 变量传递给 routes 模块时是否存在资源消耗?我知道 node.js 缓存模块,但我想知道这如何影响它们之间传递的变量,我想知道以下方法是否有效:
让我们开始加载一些模块,但让我们以不同的方式来做:
var _ = {};
_.express = require('express');
_.app = _.express();
_.mongodb = require('mongodb');
_.http = require('http');
Routes.js:
module.exports = function(_) {
_.app.get('/', function(req, res) {
res.render('homepage');
});
// other routes
};
调用 routes.js:
require('./routes')(_);
显然 _ 变量会很大,但它会包含您在任何模块中可能需要的任何内容。所以我想知道传递变量的大小是否会影响性能,在这种情况下传递比需要更多的数据会很愚蠢。
我寻求在我的应用程序中实现可实现的最佳性能,同时我尝试在编写代码时简化事情,所以任何可能对此有所帮助的建议,或任何关于它在 node.js 中如何在幕后工作的解释都将不胜感激.
提前致谢。
【问题讨论】:
-
我不想保证任何事情,但是您不传递对象,而是传递它的引用。所有引用的大小都是一样的
-
如果你说的最终是真的(而且它是有道理的),那正是我想知道的。我会调查的。谢谢!
标签: javascript node.js performance