二、Node深入之全局对象和模块化开发

733 阅读1分钟

Node程序传递参数

  • 传参node index.js lp env=dev
  • 取参console.log(process.argv);

Node输出内容方式

  • console.log(1)
  • console.clear(); 清空控制台
  • console.trace(); 打印函数调用栈

特殊的全局对象

  • 为什么特殊
    • 模块中的变量,每个模块都有,看起来像是全局对象
    • 在命令行交互是不可以使用
    • 包括:__dirname、__filename、exports、module、require()
  • __dirname:绝对路径
  • __filename:文件名字

常见的全局对象

  • process:Node的运行环境、参数信息等
  • console
  • 定时器函数
    • setTimeout
    • setInterval
    • setImmediate 立即执行回调
    • process.nextTick 添加到下一次tick队列

global全局对象

在Node中定义一个变量并不会像浏览器中window添加一个属性那样,它只是在当前模块中有一个变量,不会放到全局中

CommonJs

  • 在Node中,每一个js都是单独的模块
  • exports
  • module.exports
  • require
  • 缺点:加载模块是同步的

AMD

异步加载模块,很少用

CMD

异步加载模块,很少用,SeaJS

ES Module

  • import
  • export

Node对ES Module的支持

  • current
    • 方式一:package.json配置type:module
    • 方式二:文件以.mjs结尾
  • LST版本:能用,但会报警告