盒子
盒子
文章目录󰁋
  1. 一、环境
  2. 二、调试

Nodejs之环境&调试(二)

一、环境

commonJS

  • nodejs模块管理规范
    • 每一个文件是一个模块,有自己的作用域
    • 在模块内部module变量代表模块本身
    • module.exports属性代表模块对外接口

exports与module.exports

  • exports = module.exports exportsmodule.exports的快捷方式,不能修改exports的指向
1
2
3
4
5
// 这种方式修改了exports的指向,这样是不行的
exports = {
a:"",
b:""
}
1
2
3
4
5
// 这样没问题
module.exports = {
a:"",
b:""
}

global

全局访问的属性和方法挂载到global对象中

  • global下的全局属性方法
    • commonJS
    • Bufferprocessconsole
    • timer (setIntervalsetTimeoutsetImmediate)

process

  • process.argv
    • 参数相关的东西 argv
    • argv0argv的第一个参数
    • execArgv是调用node所传入的一些参数 如node --inspect test.js
    • exevPath调用脚本的路径 C:\Program Files\nodejs\node.exe
    • >node test3.js a=1 a=2 a=3 a=4执行的时候,传入一些外部的命令
1
2
3
4
5
6
7
const {argv, argv0, execArgv, exevPath} = process;

argv.forEach(item => {
console.log(item);
//C:\Program Files\nodejs\node.exe
//C:\Users\Administrator\Desktop\learn_node\test3.js
})
  • process.env
1
const {env} = process;
  • process.cwd
    • 打印当前路径
1
C:\Users\Administrator\Desktop\learn_node
  • process.nextTick与setImmediate
    • 执行速度: nextTick > setTimeout > setImmediate
    • nextTick在异步之前执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// nextTick比setImmediate执行得早
process.nextTick(()=>{
// 当前事件队列执行完之后再执行
console.log("nextTick")
})

setTimeout(()=>{
console.log("setTimeout")
})

// 在大部分情况下使用setImmediate就行
setImmediate(()=>{
console.log("setImmediate")
})
//nextTick
//setImmediate

二、调试

方法一:使用inspect

方法二:使用VS code

支持一下
扫一扫,支持poetries