Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js中的每个模块采用哪种格式?_Javascript_Node.js_Oop_Object - Fatal编程技术网

Javascript Node.js中的每个模块采用哪种格式?

Javascript Node.js中的每个模块采用哪种格式?,javascript,node.js,oop,object,Javascript,Node.js,Oop,Object,在Node.js中,每个模块都采用具有以下属性的对象格式: Module { id: '.', exports: {}, parent: null, filename: 'C:\\Users\\Node\\first-app\\app.js', loaded: false, children: [], paths: [ 'C:\\Users\\app\\node_modules', 'C:\\Users\\\\Node\\node_modules',

在Node.js中,每个模块都采用具有以下属性的对象格式:

Module {
  id: '.',
  exports: {},
  parent: null,
  filename: 'C:\\Users\\Node\\first-app\\app.js',
  loaded: false,
  children: [],
  paths:
   [ 'C:\\Users\\app\\node_modules',
     'C:\\Users\\\\Node\\node_modules',
     'C:\\Users\\node_modules',
     'C:\\Users\\Documents\\node_modules',
     'C:\\Users\\node_modules',
     'C:\\Users\\node_modules',
     'C:\\node_modules' ] }
但是,每个模块也采用如下函数格式:

(function (exports, require, module, __filename, __dirname) { 
//content of the function
})

其中函数将exports、require、module、_filename和_dirname作为其参数。前者是键/值格式,后者是函数定义格式。是哪一个?

您的代码示例包含两个不同但相关的内容。第一个是模块对象,如下所述。第二个是节点在内部执行的操作:在匿名函数中包装模块,这有助于将模块中的顶级变量保持在该模块的范围内,而不是全局公开它们。描述了该模块的包装行为

“每个模块都有一个函数格式”-呃,不是吗?这只是一个初始化模块对象的生命,仅此而已。函数没有保留,它不代表模块。我认为函数始终存在,因为每当出现语法错误时,都会调用函数,如function.module.\u load和function.module.runMain,否?加载模块时会创建函数,然后调用它来评估模块源,但是它被丢弃了。模块仅引用模块对象。