首页 > Web开发 > 详细

nodeJs中的module到底是个啥?

时间:2021-07-30 08:58:23      阅读:20      评论:0      收藏:0      [点我收藏+]

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:\\Users\\Administrator\\Desktop\\bable01‘,
  exports: {},
  filename: ‘C:\\Users\\Administrator\\Desktop\\bable01\\index.js‘,
  loaded: false,
  children: [],
  paths: [
    ‘C:\\Users\\Administrator\\Desktop\\bable01\\node_modules‘,
    ‘C:\\Users\\Administrator\\Desktop\\node_modules‘,
    ‘C:\\Users\\Administrator\\node_modules‘,
    ‘C:\\Users\\node_modules‘,
    ‘C:\\node_modules‘
  ]
}

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

技术分享图片

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

 

nodeJs中的module到底是个啥?

原文:https://www.cnblogs.com/lijing9932/p/15077481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!