微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js模块是否需要包含在模块模式内?

为了确保正确的隔离,我倾向于包装我写在一个函数范围内的每个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
};

这两个真的相当吗?
特别是,我有兴趣知道是否隔离级别是相同的:是模块的本地的快,ade或力矩变量? (即,我想确保它们不在全局范围中定义或干扰此模块之外的任何其他定义)。

解决方法

在模块中声明的变量是该模块的本地变量。省略您的封闭功能是安全的。

Node.js docs

Variables local to the module will be private,as though the module was wrapped in a function

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐