nodeJs中的module到底是个啥?

1.首先,nodeJs中没有window对象,但是有全局变量global

模块打印global对象:

<ref *1> Object [global] {
  global: [Circular *1],
  clearInterval: [Function: clearInterval],
  clearTimeout: [Function: clearTimeout],
  setInterval: [Function: setInterval],
  setTimeout: [Function: setTimeout] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  },
  queueMicrotask: [Function: queueMicrotask],       
  performance: [Getter/Setter],
  clearImmediate: [Function: clearImmediate],       
  setImmediate: [Function: setImmediate] {
    [Symbol(nodejs.util.promisify.custom)]: [Getter]
  }
}

 2.如果引入一个模块,模块中定义var a = 1;在引入的页面中不能访问这个a,除非使用(global.a = 1  ||  module.exports)

模块打印module对象:

Module {
  id: ‘.‘,
  path: ‘C:UsersAdministratorDesktopbable01‘,
  exports: {},
  filename: ‘C:UsersAdministratorDesktopbable01index.js‘,
  loaded: false,
  children: [],
  paths: [
    ‘C:UsersAdministratorDesktopbable01node_modules‘,
    ‘C:UsersAdministratorDesktopnode_modules‘,
    ‘C:UsersAdministratornode_modules‘,
    ‘C:Usersnode_modules‘,
    ‘C:node_modules‘
  ]
}

 当模块中require其他模块时,当前模块中的module.children会存储引入的模块:

技术分享图片

  • 在模块作用域下,还有一个内置的模块对象,exports,其实就是module.exports;(exports===module.exports);
  • 不要破坏exports的指向,如exports.a=[];
  • (__dirname所在目录解析后的绝对路径(不包含文件),__filename返回当前模块文件的解析后的绝对路径(包含文件),其实并非全局的);

 

nodeJs中的module到底是个啥?

[db:回答]

以上是nodeJs中的module到底是个啥?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>