Node.js实战(一)之概述
,
一、Node.js介绍
(2)依赖于Chrome V8引擎进行代码解释;
(3)事件驱动;
(4)非阻塞I/O;
(5)轻量、可伸缩,适于实时数据交互应用;
(6)单进程,单线程;
windows的安装很简单,几乎是一键安装下一步下一步这样的,至于Linux的话,以Ubuntu16.04为例,sudo apt-get install nodejs和 sudo apt-get install nodejs-legacy输入这两条命令即可安装成功。
三、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;
Node.js实战(一)之概述的更多相关文章
- Node.js实战(二)之HelloWorld示例
经过前面的Node.js实战(一)之概述 想必你应该对Node.js的概念.应用场景.优缺点等有个大致的了解,同时你本地Windows或者Linux上已经准备好了Node.js环境. 下面我们来进入每 ...
- 《Node.js实战(双色)》作者之一——吴中骅访谈录
- iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备
安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志
沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON
视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影. 前面的文章中,我们已经完成了项目中常见的问题,比如 路由 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源
视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks
视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 代码分层
视频地址:https://www.cctalk.com/v/15114923889408 文章 在前面几节中,我们已经实现了项目中的几个常见操作:启动服务器.路由中间件.Get 和 Post 形式的请 ...
随机推荐
- JS 词法作用域 p2
关于js 还是写的简短些,利于个人理解: 先看一个例子: var a = 2; function fn(){ var a = 3; console.log(a); } fn(a); 说明:作用域查找会 ...
- 微信小程序点击图片放大预览
微信小程序点击图片放大预览使用到 wx.previewImage 接口,可以放大.上/下一张 上代码 wxml代码 <view class='content-img' wx:if="{ ...
- js-语言精粹-函数记忆
函数可以将先前操作的结果记录在某个对象里,从而避免无谓的重复运算.这种优化方式被称为记忆(memoization).JavaScript的对象和数组要实现这种优化是非常方便的. 比如说,我们想要一个递 ...
- Struts 2(二)
一,框架的扩展名问题: ,struts2框架的默认扩展名:.action和空字符串.在框架的属性文件default.properties中进行默认配置:struts.action.extension= ...
- css 讲浮动,haslayout,BFC的文章
这篇专门讲BFC和haslayout的 这篇就不用说了,讲浮动的,张鑫旭大神的 , 这一系列有三篇
- OSGI企业应用开发(四)使用Blueprint整合Spring框架(一)
上篇文章中介绍了如何使用独立的Equinox发行包搭建OSGI运行环境,而不是依赖与具体的Eclipse基础开发工具,本文开始介绍如何使用Blueprint將Spring框架整合到OSGI中. 一.开 ...
- WampServer下修改和重置MySQL密码
Wampserver PHP环境中mysql数据库登录密码的修改和重置,mysql命令. 工具/原料 电脑Windows系统 WampServer 方法/步骤1 启动WampSer ...
- SQLite 数据库增删改查
布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- 解决 ModuleNotFoundError: No module named 'pip'
安装其它python包时,提示说 pip 10.0.1可用,就更新了一下,但是 更新过程中出现了错误,如图所示 因为这个错误导致 pip找不到, 可以首先执行 python -m ensurepip ...
- mysql 内存统计
在 mysql 5.5 中实现了类似mysql5.7中performance schema 的内存统计功能. 功能 1 展示mysql层内存总大小. 2 展示mysql层内存使用分布情况. 3 展示每 ...