为了确保正确的隔离,我倾向于包装我在函数范围内编写的每个node.js模块:
(function() {
var express = require('express');
var jade = require('jade');
var moment = require('moment');
exports.someFunction = function() {
// do something
};
exports.otherFunction = function() {
// do something else
};
})();
我已经这样做了一段时间了,但我觉得node.js'模块系统实际上是为我做的,或者(换句话说)上面的代码等同于以下代码:
var express = require('express');
var jade = require('jade');
var moment = require('moment');
exports.someFunction = function() {
// do something
};
exports.otherFunction = function() {
// do something else
};
两者真的相同吗?
特别是,我很想知道隔离级别是否相同:模块本地的express
,jade
或moment
变量是什么? (即,我想确保它们未在全局范围内定义或干扰本模块之外的任何其他定义。)