NodeJS简介

简介: Node.js是一个基于Chrome V8引擎的开源、跨平台JavaScript运行环境,适用于服务器端编程,以事件驱动、非阻塞I/O模型提高性能,广泛应用于Web服务API、实时游戏和后端开发。

作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.Node.js概述

1>.Node.js简介

  Node.js是一个能够在服务器端运行的JavaScript的开放源代码,跨平台JavaScript运行环境。

  Node.js采用Google的V8引擎运行JS代码,使用事件驱动,非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模。  

  Node.js大部分基本模块都用JavaScript编写,在Node出现之前,JavaScript编写。在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序通常在用户的浏览器上运行。

  目前,Node.js已被IBM,Microsoft,Yahoo!,Walmart,Groupon,SAP,LinkedIn,Rakuten,Paypal,Voxer和GoDaddy等企业采用。

2>.Node.js之父-瑞安·达尔(Ryan Dahl)简介

  Ryan Dahl并非科班出身(即"非计算机专业")的开发者,在2004年的时候他还在纽约的罗彻斯特大学数学系读博士。

  2006年,也许是厌倦了读博的无聊,他产生了"世界那么大,我想去看看"的念头,做出了退学的决定,然后一个人来到智利的Valparaiso小镇。

  从那时起,Ryan Dahl不知道是否因为生活的关系,他开始学习网站开发,走上了码农的道路。那时候Ruby On Rails很火,它也不例外的学习了它。

  从那时候开始,Ryan Dahl的生活方式就是接项目,然后去客户的地方工作,在他眼中,那公司和上班其实就是去哪里旅行。

  Ryan Dahl经过仅仅两年的工作后,成为了高性能Web服务器的专家,从接开发应用到变成专门帮客户解决性能问题的专家。期间他开始写一些开源项目帮助客户解决Web服务器的高并发性能问题,它尝试了很多种语言,但是最终都失败了。

  在他快绝望的时候,Google的V8引擎来了。V8满足他关于高性能WEB服务器的想象。于是在2009年2月它开始着手编写Node.js。

3>.Node.js的简史

  2009年:
    瑞安·达尔(Ryan Dahl)在GitHub上发布的node的最初版本。

  2010年1月:
    Node的包管理器npm诞生。

  2010年底:
    joyent公司赞助Node的开发,瑞安·达尔(Ryan Dahl)加入旗下,全职负责Node。

  2011年7月:
    Node超越Ruby on Rails,称为Github上关注度最高的项目。

  2012年1月:
    瑞安·达尔(Ryan Dahl)离开Node项目。

  2014年12月:
    Fedor Indutny在2014年12月制作了分支版本,并起名"io.js"。

  2015年初:  
    Node.js基金会成立(其中有IBM,Inter,Microsoft,Joyent公司参与),在此之前Node.js项目有Joyent这一家公司维护,这也是为什么上面有"io.js"分支的诞生。  
  2015年9月:
    Node.js和io.js合并,Node 4.0发布。

  2016年:
    Node 6.0发布。

  2017年:
    Node 8.0发布。

  温馨提示:  
    上面只提到了Node.js的偶数版本(Node 4.0,Node 6.0和Node 8.0),也就是说是存在Node 5.0以及Node 7.0版本的,但在生产环境中也推荐大家使用偶数版本,因为奇数版本相对来说可能有不稳定的因素!  
  Node官网地址:
    https://nodejs.org/en/

二.Node.js和JavaScript的区别

  JavaScript是在浏览器中运行的代码,他的作用域只在浏览器中,并不能超出浏览器所有的权限,而Node.js则跳出了浏览器的限制,它可以像Java,Python,Golang这样的编程语言一样,可以直接和操作系统进行交互;

  从C/S架构来说,JavaScript是在客户端浏览器上渲染的程序,而Node.js既可以充当Client角色,也可以充当Server端角色;

三.Node的应用场景

  Node的用途:
    (1)Web服务API,比如REST;  
    (2)实时多人游戏;  
    (3)后端的Web服务,例如跨域,服务器端的请求;  
    (4)基于Web的应用;  
    (5)多客户端的通信,如即时通信;  

  温馨提示:  
    Node.js是基于单线程实现的,但是后台拥有一个I/O线程池。可以说Node.js成也单线程,败也单线程,尽管单线程的处理效率很高,但也是有极限的。不过值得庆幸的是,Node.js支持分布式,即单节点性能达到瓶颈,我们可以增加机器来解决性能问题。  
    综上所述,在超大并发的场景下,Node.js并不太适合做后端的服务器开发语言,建议还是选择支持高并发的语言,比如Java,C++,Golang等。当然,Python也是可以的,但由于GIL的存在,因此它在后端开发能力上相比Java和Go,并没有特别可圈可点的地方。  
  NodeJS的运行环境部署:
    https://www.cnblogs.com/yinzhengjie/p/14221305.html
目录
相关文章
|
6月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
145 0
|
6月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
76 0
|
1月前
|
Web App开发 JavaScript 前端开发
JavaWeb 22.Node.js_简介和安装
JavaWeb 22.Node.js_简介和安装
|
6月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
164 0
|
Web App开发 监控 网络协议
QUIC 简介及 NodeJs 简单示例
QUIC协议是一个新的通讯协议,基于 UDP 的传输协议并希望最终取代所有基于TCP的HTTP请求。熟悉 UDP 的人都应该清楚为什么要使用 QUIC。UDP 是的特点是不可靠、数据包经常丢失、重新排序、重复等等。UDP 不包括任何更高级别协议(如 HTTP)严格要求的 TCP 的可靠性和顺序保证,这就是 QUIC 的用武之地。
702 0
QUIC 简介及 NodeJs 简单示例
|
资源调度 前端开发 中间件
node独白(简介)
node独白(简介)
|
JavaScript 前端开发
前端学习笔记202305学习笔记第二十四天-node.js简介1
前端学习笔记202305学习笔记第二十四天-node.js简介1
42 0
|
内存技术
node笔记记录3简介和安装nvm
node笔记记录3简介和安装nvm
87 0
node笔记记录3简介和安装nvm
node笔记记录1简介和安装
node笔记记录1简介和安装
76 0
node笔记记录1简介和安装
node笔记记录2简介和安装
node笔记记录2简介和安装
80 0
node笔记记录2简介和安装