好程序员web前端学习路线nodeJs学习过程之认识nodejs

  好程序员web前端学习路线nodeJs学习过程之认识nodejs,nodeJs只是据说过,没见过,没玩过。重新手开始,我想慢慢掌握它。javascript

  •   首先,我想知道nodeJs是什么?干什么用的。

  来源于node官网与网络:php

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。html

Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。比较独特的是,Node.js会假设在POSIX环境下运行Linux 或 Mac OS X。
若是是在Windows下,那就须要安装MinGW以得到一个仿POSIX的环境。在Node中,Http是首要的。Node为建立http服务器做了优化,因此在网上看到的大部分示例和库都是集中在web上(http框架、模板库等)。前端

  作些什么呢java

1. 用于web服务器端;node

2. javascript工具包;程序员

3. 和http有着密切的关系。
4. 快速构建网络服务及应用;web

5. 封装谷歌v8引擎。浏览器

nodeJs究竟是什么呢,它是服务器端js运行平台,是一个javascript的运行环境和库。能够编写后台系统或者服务器端的Javascript代码,交给 Node.js来解释执行。就像html遇到php会由php来解释,jsp由jvm解释执行同样。服务器

  他还有不少的特性就不一一举例了。Nodejs做为后起之秀的后台,也有不少吸引人的地方:单线程、V8虚拟机、事件驱动、非阻塞IO;nodejs能够不新增额外线程的状况下,依然能够对任务进行并处理 --node是单线程的。它是经过事件轮询来实行操做的,对此咱们能够充分的利用这一点,尽量的避免阻塞,取而代之。

  那nodejs是作什么的?服务端相似于Java,web应用等;

  举个例子:

var http = require('http');

server = http.createServer(function (req, res) {

   res.writeHeader(200, {"Content-Type": "text/plain"});

   res.end("Hello");

})

server.listen(8000);

console.log("httpd start @8000");

  确保nodejs环境安装成功,对此编译执行经过,在浏览器地址栏输入localhost:8000,能够看到输出。

nodeJS的优缺点

  优势:1. 高并发

2. 适合I/O密集型应用

  缺点:1. 不适合CPU密集型应用;因为JavaScript单线程的缘由,若是有长时间运行的计算(好比大循环),将会致使CPU时间片不能释放,使得后续I/O没法发起;

  解决方案:分解大型运算任务为多个小任务,使得运算可以适时释放,不阻塞I/O调用的发起;

2. 只支持单核CPU,不能充分利用CPU

3. 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃

  缘由:单进程,单线程

  解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;

  (2)开多个进程监听同一个端口,使用cluster模块;

4. 开源组件库质量良莠不齐,更新快,向下不兼容

5. Debug不方便,错误没有stack trace

相关文章
相关标签/搜索