,html
1、Node.js介绍前端
(2)依赖于Chrome V8引擎进行代码解释;node
(3)事件驱动;web
(4)非阻塞I/O;编程
(5)轻量、可伸缩,适于实时数据交互应用;windows
(6)单进程,单线程;浏览器
windows的安装很简单,几乎是一键安装下一步下一步这样的,至于Linux的话,以Ubuntu16.04为例,sudo apt-get install nodejs和 sudo apt-get install nodejs-legacy输入这两条命令便可安装成功。网络
3、Node.js的应用场景并发
参考该篇博文:https://www.cnblogs.com/gassnake999/p/7044583.html负载均衡
应用场景一共15个,以下所示:
(1) Web开发:Express + EJS + Mongoose/MySQL;
(2) REST开发:Restify;
(3)Web聊天室(IM):Express + Socket.io;
(4) Web爬虫:Cheerio/Request;
(5)Web博客:Hexo;
(6)Web论坛: nodeclub;
(7)Web幻灯片:Cleaver;
(8)前端包管理平台: bower.js;
(9)OAuth认证:Passport;
(10)定时任务工具: later;
(11)浏览器环境工具: browserify;
(12)命令行编程工具:Commander;
(13) Web控制台工具: tty.js;
(14)客户端应用工具: node-webkit;
(15)操做系统: node-os;
其实还有更多只不过本文并无列举出来,总而言之,只有想不到没有作不到。
优势:
(1)高并发(最重要的优势);
(2)适合I/O密集型应用;
缺点:
(1)不适合CPU密集型应用,CPU密集型应用给Node带来的挑战主要是:因为JavaScript单线程的缘由,若是有长时间运行的计算(好比大循环),将会致使CPU时间片不能释放,使得后续I/O没法发起;
解决方案:分解大型运算任务为多个小任务,使得运算可以适时释放,不阻塞I/O调用的发起;
(2)只支持单核CPU,不能充分利用CPU;
(3)可靠性低,一旦代码某个环节崩溃,整个系统都崩溃;
缘由:单进程,单线程
解决方案:
a.Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
b.开多个进程监听同一个端口,使用cluster模块;
(4)开源组件库质量良莠不齐,更新快,向下不兼容;
(5)Debug不方便,错误没有stack trace;