3

一、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、自研框架等

无悔铭
1.6k 声望504 粉丝

追求卓越,成功也会在不经意之间追上你