node.js框架学习
- node.js和浏览器的区别
- 没有浏览器的dom操作
- 使用v8引擎
- 包管理使用nm
- node.js生产环境和开发环境区别
- NODE_ENV=production
- NODE_EVN=development
- 调试node.js
- enable inspector
- 启动携带 —inspect命令 ,将开启一个http server
- 异步流控制
- 之前通过回调/状态管理/控制流
- 现在主要是Promise
- await、async
- 阻塞、非阻塞
- 尽量使用异步操作IO
- 同步的方法有Sync后缀,大部分都是异步
- 需要考虑并发和吞吐量
- 事件循环
- 定时器
- 待定回调(执行延迟到下一个循环迭代的i/o回调)
- idle,prepare(node.js自己的)
- poll(i/o操作完成等)
- check(回调函数执行)
- close callbacks
- 事件产生
- require(’node:events’)
- emitter:提交事件
- on:处理事件
- once:添加一次事件处理
- removeListener()/off(): 从监听中移除事件
- removeAllListeners: 移除所有监听事件
- process.nextTick
- 在当前事件循环结束时且在下一个事件循环开始之前调用
- setImmediate
- 尽快的执行
- 实际上执行顺序是,process.nextTick、Promise.then、macrotask(timer)
图来源于:https://juejin.cn/post/7010308647792148511