一、Node.js是什么?
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
1.1 误解
由于JavaScript的缘故,人们常常对Node.js产生不少的误解,如:
肯定是前端搞出来的东西
又是一门新的语言?
是不是JavaScript框架?
会不会效率很慢?
当然,这些问题的答案都是否。既然它如此的强大,那么接下来就让我们一起来了解了解Node.js吧!
1.2 Node.js是什么?
是Javascript的运行环境,不是一门新的语言,也不是JavaScript的框架,采用Google的V8引擎。可以简单的理解为服务器看不见的浏览器,提供特殊的API可以读取请求、操作数据库等,已经脱离来前端体系,是后端体系的内容。
1.3 Node.js用什么写的?
Node.js平台是用C/C++实现,运行的是JAVASCRIPT的脚本。它和JavaScript的关系就类似于JAVA和JAVA虚拟机。
1.4 为什么是JavaScript?
既然Node.js并非由JavaScript语言写出,为什么就一定要使用JavaScript不可呢?
这里面就涉及到一个历史的小故事——Node.js,原名Web.js。其设计作者非纯粹意义上专业领域出生的码农,而是一位数学家,他希望能通过实现事件驱动和异步IO来设计一个高性能的WEB服务器,在比较了众多语言之后,选择了JavaScript。
那么JavaScript又是凭借什么功能打动了这位大牛呢?
函数式编程。
异步编程。在前端编程中,异步编程是习以为常的事情。
没有历史包袱。如:Lua的同步库已经普遍被用户熟悉,改变用户习惯难度系数偏高。
V8引擎。在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码,并且使用了如内联缓存等方法来提高性能。也因此,JavaScript程序在V8引擎下的运行速度媲美二进制程序。
1.5 Node.js
Node.js既是WEB服务器,又是高性能、可扩展的网络应用框架,还是单线程、事件驱动简化网络编程的。
目的:成为一个快速构建、可伸缩的网络应用平台。
1.6 Nodejs发展历史
1.7 Node.js对于前端开发者意味着什么?
(1)无需再花费力气学一门新语言
(2)其他语言能做的JS也能做,甚至更好
二、 Node.js可以做什么?
2.1 WEB服务器
动态网页
Ajax cgi
Web Socket。主要解决长链接问题。
2.2 桌面应用
基于Electron,node-webkit
Atom
VSCode
2.3 命令行工具
网络爬虫
本地开发构建工具,如GRUNT等
2.4 基于TCP/UDP等SOCKET应用
APP后台服务
海量数据上报服务
2.5 Node.js优势
- 高并发
- 跨平台
- 前后端同构
三、Node.js在QQ空间的应用
3.1 Node.js在QQ空间应用的简单介绍
2012年,接入Node.js。其团队目前已独立开发了服务器端等WEB标准组建TSW。如今,除部分古老的功能外,其余基本已转入由Node.js实现。既然如此强大,那么我们就来看看TSW的应用成果吧。
3.2 TSW组建
3.3 TSW组建具体可以实现哪些功能呢?
进程管理
监控体系——日志系统、自动告警、恶意请求拦截等
问题定位——测试环境、用户染色、定向抓包等
研发效率——前后端分离、代码同构、页面直出等
支持多种框架——Express、Koa、自研框架等
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。