前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版

Nodejs之环境&调试(二)

首页2017-10-15 16:30:15Back-End
JavaScriptNode

# 一、环境

commonJS

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

exports与module.exports

  • exports = module.exports exports是module.exports的快捷方式,不能修改exports的指向
// 这种方式修改了exports的指向,这样是不行的
exports = {
    a:"",
    b:""
}
@前端进阶之旅: 代码已经复制到剪贴板
// 这样没问题
module.exports = {
    a:"",
    b:""
}
@前端进阶之旅: 代码已经复制到剪贴板

global

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

  • global下的全局属性方法
    • commonJS
    • Buffer、process、console
    • timer (setInterval、setTimeout、setImmediate)

process

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

@前端进阶之旅: 代码已经复制到剪贴板
  • process.cwd
    • 打印当前路径
C:\Users\Administrator\Desktop\learn_node
@前端进阶之旅: 代码已经复制到剪贴板
  • process.nextTick与setImmediate
    • 执行速度: nextTick > setTimeout > setImmediate
    • nextTick在异步之前执行
// nextTick比setImmediate执行得早
process.nextTick(()=>{
   // 当前事件队列执行完之后再执行
   console.log("nextTick") 
})

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

// 在大部分情况下使用setImmediate就行
setImmediate(()=>{
    console.log("setImmediate")
})
//nextTick
//setImmediate
@前端进阶之旅: 代码已经复制到剪贴板

# 二、调试

  • 官方调试方法 https://nodejs.org/en/docs/inspector/

方法一:使用inspect

  • Option 1: Open chrome://inspect in a Chromium-based browser. Click the Configure button and ensure your target host and port are listed. Then select your Node.js app from the list
  • Option 2: Install the Chrome Extension NIM (Node Inspector Manager): https://chrome.google.com/webstore/detail/nim-node-inspector-manage/gnhhdgbaldcilmgcpfddgdbkhjohddkj

方法二:使用VS code

fe
  • 一、环境
  • 二、调试

← Nodejs之基础API(三)Nodejs之简单入门(一) →