introduce
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
- Node.js不是JS应用、而是JS运行平台(JavaScript runtime )
- 构建在Chrome’s V8 JavaScript engine之上
- event-driven, non-blocking I/O model简单点讲就是每个函数都是异步的,所以lightweight and efficient
- 网站(如express/koa等)
- im即使聊天(socket.io)
- api(移动端,pc,h5)
- http proxy(淘宝首页)
- 前端构建工具(grunt/gulp/bower/webpack/fis3…)
- 写操作系统(NodeOS)
- 跨平台打包工具(以前叫Node-WebKit现在叫nw.js)
- 命令行工具(比如cordova)
- 都是JS,可以前后端复用
- 体质适合:事件驱动、非阻塞I/O
- 适合IO密集型业务
- 执行速度也不差
- 模块丰富,npm非常庞大、强大
NPM的全称是Node Package Manager[1] ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准,通常称为node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。
Nodejs自身提供了基本的模块,但是开发实际应用过程中仅仅依靠这些基本模块则还需要较多的工作。幸运的是,Nodejs库和框架为我们提供了帮助,让我们减少工作量。但是成百上千的库或者框架管理起来又很麻烦,有了NPM,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。
- http
- net
- url