什么是nodejs
- nodejs是一门后端语言
- 基于Chrome v8引擎的js运行环境(其他引擎:单片机(嵌入式),actionscript(flash))
- nodejs有两大特征
-
事件驱动
- 事件的定义(发布)
- 事件的触发(订阅)
-
非阻塞式I/O 模型
- 非阻塞 : 执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他任务
- I/O: 磁盘文件操作 / 数据库数据操作
-
总结:
- 问题: 非阻塞,但是js是单线程,要想实现非阻塞,必须将任务放到任务队列,任务队列如何放?
- 解决: js中异步操作
- 问题: js中如何实现异步操作
- 解决:
- 回调函数 √
- Promise
- gengator函数
- async函数
- Node.js自带的 nextTick setImmediate
- 别人封装的 async.js 库
Node.js的包管理器
NPM: 全球最大的开源生态系统( 国外的 )
cnpm 淘宝镜像( 国内的 )
yarn 流行