NodeJS简介
Node.js uses an event-driven,non-blocking I/O model
非阻塞I/O
- 阻塞:I/O时进程休眠等待I/O完成后进行下一步
非阻塞:I/O时函数立即返回,进程不等待I/O完成
事件驱动
- I/O等异步操作结束后通知
观察者模式
CPU密集:压缩、解压、加密、解密
I/O密集:文件操作、网络操作、数据库
web常见场景:静态资源读取,数据库操作,渲染页面
NodeJS常用场景:
- Web Server
- 本地代码构建
- 实用小工具的开发
环境
- CommonJS规范
- 每个文件是一个模块,有自己的作用域
- 在模块内部module变量代表模块本身
- module.exports属性代表模块对外接口
- global 全局对象
- process