1.什么是Node.js?Node.js是一个基于ChromeJavaScript运行时的平台,用于轻松构建快速响应和易于扩展的网络应用程序。Node.js采用事件驱动、非阻塞I/O模型,轻量高效,非常适合在分布式设备上运行数据密集型实时应用。1.1误解因为JavaScript,人们对Node.js往往有很多误解,比如:它一定是前端创造出来的东西,是一门新语言?它是一个JavaScript框架吗?会不会很慢?当然,这些问题的答案是否定的。既然这么强大,那我们就一起来学习一下Node.js吧!1.2什么是Node.js?它是一个Javascript运行环境,不是一门新语言,也不是一个JavaScript框架,使用的是谷歌的V8引擎。可以简单理解为服务器不可见的浏览器,提供专门的API读取请求、操作数据库等,已经脱离了前端系统,是后端系统的内容。1.3Node.js是用什么写的?Node.js平台以C/C++实现,运行JAVASCRIPT脚本。它和JavaScript的关系类似于JAVA和JAVA虚拟机。1.4为什么是JavaScript?既然Node.js不是用JavaScript语言写的,为什么一定要用JavaScript?这就牵扯到一个小小的历史故事——Node.js,前身为Web.js。设计的作者不是纯专业领域出身的coder,而是数学家。他希望通过实现事件驱动和异步IO来设计一个高性能的网络服务器。在比较了很多语言之后,他选择了JavaScript。那么JavaScript靠什么函数打动这头大牛呢?函数式编程。异步编程。在前端编程中,异步编程是家常便饭。没有历史包袱。例如:Lua的同步库已经为用户所熟悉,很难改变用户的习惯。V8引擎。在运行JavaScript之前,V8将其编译为本机机器代码,并使用内联缓存等方法与其他将其转换为字节码或解释的JavaScript引擎相比提高性能。因此,JavaScript程序在V8引擎下的运行速度与二进制程序不相上下。1.5Node.jsNode.js不仅仅是一个WEB服务器,还是一个高性能、可扩展的网络应用框架,是一个单线程、事件驱动、简化的网络编程。目的:成为一个快速构建、可扩展的网络应用平台。1.6Nodejs发展历程1.7Node.js对前端开发者意味着什么?(1)不需要花力气去学习一门新的语言(2)JS可以做到其他语言可以做到的,甚至更好。2.Node.js能做什么?2.1WEB服务器动态网页AjaxcgiWebSocket。主要解决长链接问题。2.2基于Electron、node-webkitAtomVSCode2.3命令行工具网络爬虫本地开发构建工具,如GRUNT等2.4基于TCP/UDP等SOCKET应用APP后台服务海量数据上报服务2.5Node.js优势高并发跨平台前后端同构三、Node.js在QQ空间的应用3.1Node.js在QQ空间的应用简介2012年,接触Node.js。其团队独立开发了服务端等WEB标准,形成了TSW。今天,除了一些古老的功能,其余的基本上都已经被Node.js实现了。既然这么厉害,那我们就来看看TSW的应用结果吧。3.2TSWFormation3.3TSWFormation可以实现哪些功能?流程管理与监控系统——日志系统、自动告警、恶意请求拦截等问题定位——测试环境、用户染色、定向抓包等研发效率——前后端分离、代码同构、页面直接输出支持多种框架——Express、Koa、自研框架等。
