什么是Node.js?
一丶概念
1.Node.js是一门后端语言,类似php,java。
2.它是基于Chrome v8引擎的js运行环境。除此之外,还有其他的引擎: 单片机 (主要用于嵌入式应用,大量用于自动控制的电子设备,如手机,电梯)、 actionscript(多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA开发)。
二丶特征( Node.js有三大明显特征)
1.Node.js最大的特征就是单线程。另外,单线程的带来的好处,还有操作系统完
全不再有线程创建、销毁的时间开销。坏处,就是一个用户造成了线程的崩溃,整个服务都崩溃了,其他人也崩溃了。
2.事件驱动
3.非阻塞式 I/O 模型
- 非阻塞 : 执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他任务
- I/O: 磁盘文件操作 / 数据库数据操作
三丶总结
非阻塞,但是js是单线程,要想实现非阻塞,必须将任务放到任务队列,任务队列如何放?
解决: js中异步操作
问题: js中如何实现异步操作
解决:
1. 回调函数
2. Promise
3. gengator函数
4. async函数
5. Node.js自带的 nextTick setImmediate
6. 别人封装的 async.js 库