Node.js目的就是帮助前端人员打开服务器黑盒子,类似的有:Java、PHP、Python、Ruby、.Net…
Node.js不是语言、库、框架,是一个运行环境。可以解析和执行Js代码,可以脱离浏览器。
浏览器中的JS
- ECMAScript:基本语法、if、var、function、Object、Array
- BOM
- DOM
Node.js中没有BOM、DOM不处理页面,主要有ECMAScript 和 在Node这个Javascr执行环境中为Javascript提供了一些服务器级别的操作 API ,例如:文件的读写、网络服务的构建、网络通信、http服务器等
Node.js的特性:event-driven 事件驱动、non-blocking I/O model 非阻塞IO模型(异步)、lightweight and dfficient 轻量和高效
npm是世界上最大的开源库生态系统、绝大多数Javascript相关的包都存放在npm上,这样做方便开发人员下载使用。例:npm install jquery;
构建于Chrome V8 引擎之上
- 代码只是具有特定格式的字符串而已
- 引擎可以认识它,引擎可以帮助我们去解析和执行
- Google Chrome的 V8 引擎是目前公认的解析执行 Javascript 代码最快的
- Node.js 的作者把 Google Chrome 中的 V8 引擎移植了出来,开发了一个独立的Javascript运行时环境
Node.js能做什么?
- Web 服务器后台
- 命令行工具:npm(node)、git(C语言)、hexo(node)…
- 游戏服务器 | 接口服务器
对于前端开发工程师来讲,接触 node 最多的是 它的命令行工具,自己写的很少,主要是使用别人第三方的:webpack、gulp、npm
资源网站
- JavaScript 标准参考教程(alpha)
- Cnode.org社区
- CNode.org新人入门
Node.js学什么?
- B/S编程模型:Browser-Sever、Back-end、任何服务端技术的BS编程模型都是一样的,和语言无关、Node 只是作为学习BS编程模型的一个工具
- 模块化编程:RequireJs、SeaJS、@import(‘文件路径’)以前认知的JavaScript只能通过 Script 标签来加载,在Node 中可以像@import() 一样来引用加载 Javascript 脚本文件
- Node 常用的API
- 异步编程:回调函数、Promise、async、generator
- Express Web 开发框架
- ECMAScript 6