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,electron)
- 命令行工具(比如cordova)
http://stackshare.io/nodejs/in-stacks
- 前端熟悉的语言,學習成本低
- 都是JS,可以前后端复用
- 体质适合:事件驱动、非阻塞I/O
- 适合IO密集型业务
- 执行速度也不差
- 模块丰富,npm非常庞大、强大
NPM作为Node的模块管理和发布工具,作用与Ruby的gem、Python的pypl或setuptools、PHP的pear和.Net的Nuget一样。在当前前端工程化极速狂奔的年代,即使不做nodejs的开发,也需要学习和使用NPM的,谁叫grunt/gulp、bower、yeoman这一堆的工具都通过NPM发布呢?!
- http
- net
- path
nodejs以包的形式组织程序模块,而包的定义却十分简单——包含文件内容符合规范package.json文件的目录或归档文件。并通过