认识Node
node是javascript的服务器运行环境
node采用谷歌V8引擎,作为JavaScript语言解释器,速度非常快。性能非常好。
发展史
2008年Ajax逐渐诞生
2009年Ryan Dahl创建一个容易扩展,适用于现代web应用通信的服务器平台,服务器和浏览器实时通讯,信息推送,优秀的模块化
2013年发布稳定版v.0.10.13
随后Node的发布计划主要集中在性能上,长期使用的是v4.4.4
Node与JavaScript
为什么要学习Node
很火,风靡全球
Linkedln paypal pomelo 网易 知乎 阿里
Express PM2 CoffeeScript socket.io(即时通信框架)
应用领域广
RESTFUL API
实时通信
高并发 单进程承载大量请求
I/O阻塞 javascript的事件异步去抵抗io阻塞
Node的特点
环境部署简单 npm自动化工具,执行安装扩展
注重约定 遵循约定
基于事件
异步编程
高效与性能
单线程与多进程 google v8是单进程的
子进程
多进程 PM2第三方工具实现
node缺点
大量采用匿名函数,使得抛出的异常不易阅读,给匿名函数命名
try/catch限制于同步代码,使得异步捕获较为复杂
单线程的可靠问题
不适合CPU密集型场景
回调代码习惯影响阅读
什么是全栈
界面UI设计,IOS,Androl,数据库,服务器,职位职责范围大不相同
Web全栈
HTML/CSS页面的架构
浏览器端的开发
服务器端的开发
数据库开发
服务器运维
JavaScript能够开发哪些栈
Moongodb(文档数据库,几乎不需要配置就可以在程序中直接使用了)
Express
AngularJs (MVC)
NodeJs
Node的执行环境
Google V8
文件系统 Node的核心模块 fs , 通过它Node可以对文件进行读取,写入,改名,删除,遍历,连接等操作
网络功能 http模块,dns模块,net模块,tls模块,socket.io模块
二进制 Buffer
数据流 分为:可读流和可写流
加密与解密 (crypto)哈希算法