相信不少人还是不认识node.js是什么?也包括很多开发人员也是不太清楚怎么回事?其实在node.js出现之前,web应用程序构架(包括流量、处理器速度和内存速度)存在一些瓶颈。这里的瓶颈主要是指服务器能够处理并发连接的数量。直到node.js的出现才完美的解决了这一问题。那今天就要讲讲node.js吧!
1、起源
Node.js起源于2009年3月。最初Ryan Dahl是为了构建一个高性能的文本服务器,而node.js是他在寻找一种更高提升web服务器性能发现的,事件驱动、非阻塞I/O这种方式能更好的提高性能。随着Nodejs的不断发展,Nodejs渐渐演变成一种构建网络应用的基础框架,并发展为一个不共享任何资源的单线程、单进程系统,但包含了很适合网络的库,这样Nodejs就为构建大型分布式应用提供了基础设施。他们的目标都是为了构建快速、可伸缩的网络应用平台。它自身非常简单、采用通信协议来组织许多的Node,非常容易通过拓展来达成构建大型网络应用的目的。
2、node.js简介
Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome'sJavaScriptruntime,也就是说,实际上它是对GoogleV8引擎(应用于GoogleChrome浏览器)进行了封装。Nodejs不是一个js应用而是一个js运行平台。其是由C++编写而成。但是Nodejs是一个后端的运行环境。因此你可以编写系统级或者服务器端的js让Nodejs帮你执行。
3、优势
1)node.js采用事件驱动、异步编程,为网络服务而设计。
2)node.js采用非阻塞模式的IO处理,可以使node.js在相对低系统资源耗,拥有出色的负载能力,非常适合用作依赖其它IO资源的中间层服务。
3)node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。
4)使用node.js配合CoffeeScript 写异步操作链非常便利,相比之下Tornado无论是写命名函数的回调,还是 yield 一个 Task 都没那么自然。
4、缺点
1)用过的人可能第一时间就会想到debug,太难了,没有stack trace.调试太困难。或者说是苦逼。
2)然后就是包的问题。Nodejs社区有很多包品质良莠不齐、如果你想偷懒而又刚好npm了一个有问题的包你就悲催了。但是是开源的你可以自己调。