node.js 概述与安装以及环境搭建

Nodejs介绍

简单的说 Node.js 就是运行在服务端的 JavaScrip(编写高性能网络服务器的JavaScript工具包(用js开发服务端程序))

JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。V8 是 Google 发布的开源 JavaScript 引擎,本身就是用于 Chrome 浏览器 的 JS 解释部分,但是 Ryan Dahl 这哥们,鬼才般的,把这个 V8 搬到了服务器上,用于做服务器的软件。

每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。

例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象。而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了fs、http等内置对象。

特点:快,耗内存 ,异步耗内存测试:网上一个百万级并发测试,未优化的情况下1M的连接,消耗了16G的内存

Nodejs发展史

2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。

2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。

2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。

2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。

2011年7月,Node.js在微软的支持下发布Windows版本

使用Node.js开发的优点

性能高(机制问题,支持异步开发)

严格地说,Node.js 是一个用于开发各种Web 服务器的开发工具。在 Node.js 服务器中,运行的是高性能 V8 JavaScript 脚本语言,该语言是一种可以运行在服务器端的 JavaScript 脚本语言。

什么是 V8 JavaScript 脚本语言呢?该语言是一种被 V8 JavaScript 引擎所解析并执行的脚本语言。V8 JavaScript 引擎是由 Google 公司使用 C++语言开发的一种高性能 JavaScript 引擎,该引擎并不局限于在浏览 器中运行。Node.js 将其转用在了服务器中,并且为其提供了许多附加的具有各种不同用途的 API。例如, 在一个服务器中,经常需要处理各种二进制数据。在 JavaScript 脚本语言中,只具有非常有限的对二进制数 据的处理能力,而 Node.js 所提供的 Buffer 类则提供了丰富的对二进制数据的处理能力。

另外,在 V8 JavaScript 引擎内部使用一种全新的编译技术。这意味着开发者编写的高端的 JavaScript 脚本代 码与开发者编写的低端的C语言具有非常相近的执行效率,这也是Node.js 服务器可以提供的一个重要特性。

开发效率高

开发过程中代码量跟其他语言差不多,但是在优化上能省不少的事

应用范围广(NodeJs可以干什么)

前后端编程语言环境统一。这类倚重点的代表是雅虎。雅虎开放了 Cocktai 框架,利用 自己深厚的前端沉淀,将 YUI3 这个前端框架的能力借助 Node 延伸到服务器端,使得使用 者摆脱了日常工作中一边写 JavaScript—边写 PHP 所帯来的上下文交换负担。

Node 带来的高性能 I/0 用于实时应用。Voxer 将 Node 应用在实时语音上。国内腾讯的 朋友网将 Node 应用在长连接中,以提供实时功能,花瓣网、蘑菇街等公司通过 socket.io 实 现实时通知的功能。

并行 I/0 使得使用者可以更高效地利用分布式环境。阿里巴巴 eBay 是这方面的典型。 阿里巴巴的 NodeFox 和 eBay 的 ql.io 都是借用 Node 并行 I/O 的能力,更高效地使用已有的 数据。

并行 I/O •有效利用稳定接口提升 Web 渲染能力。雪球财经和 Linkedln 的移动版网站均 是这种案例,撇弃 同步等待式的顺序请求,大胆采用并行丨/〇,加速数据的获取进而提升 Web 的渲染速度。

云计算平台提供 Node 支持。微软将 Node 引入 Azure 的开发中,阿里云、百度均纷纷 在云服务器上提供 Node 应用托管服务,Joyent 更是云计算中提供 Node 支持的代表。这类 平台看重 JavaScript 带来的开发上的优势,以及低资源占用、高性能的特点。

游戏开发领域。游戏领域对实时和并发有很高的要求,网易开源了 pomelo 实时框架, 可以应用在游戏和高实时应用中。

工具类应用。过去依赖 java 或其他语言构建的前端工具类应用,纷纷被一些前端工程 师用 Node 重写,用前端熟悉的语言为前端构建熟悉的工具。

NodeJs 超强的高并发能力

Node.js 的首要目标是提供一种简单的、用于创建高性能服务器及可在该服务器中运行的各种应用程

序的开发工具。 首先让我们来看一下现在的服务器端语言中存在着什么问题。 在 Java、PHP 或者.net 等服务器端语言

中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约 2MB 内存。也就是说,理论上,

一个 8GB 内存的服务器可以同时连接的最大用户数为 4000 个左右。要让 Web 应用程序支持更多的用户,就

需要增加服务器的数量,而 Web 应用程序的硬件成本当然就上升了。

Node.js 不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个 内部事件,通过非阻塞 I/O、事件驱动机制,让 Node.js 程序宏观上也是并行的。使用 Node.js,一个 8GB 内存的服务器,可以同时处理超过 4 万用户的连接。

Node.js的劣势和解决方案

默认不支持多核,但用cluster可以解决

默认不支持服务器集群node-http-proxy可以解决

使用Nginx做负载均衡,静态的由nginx处理,动态的由node.js处理

forever或node-cluster实现灾难恢复

框架的选择

Express:完善、稳定、文档比较全、社区大

Sails:在express的基础之上

Koa:超前

Hapi:复杂(一个简单的hello world都要做很多切磋)适合复杂的大型项目

下载Node.js

下载地址:https://nodejs.org/en/download/

Windows系统下,选择和系统版本匹配的.msi后缀的安装文件。

Mac OS X系统,选择.pkg后缀的安装文件。 里面包含了npm,所以安装了node也就安装了npm

安装node.js

下载完后直接点击安装,一直下一步即可

打开命令行——输入node,看到下面的东西表示安装没问题

想要退出的话,按两次Ctrl+C即可

查看node.js的版本

Nodejs示例(Hello World)

创建一个名为hello.js的文件

从命令行执行这个文件

每次这样运行会很麻烦,可以先进入文件所在的文件夹,然后在运行

NodeJs和JavaScript的异同

相同点:在ECMAScript部分node和js其实是一样的,比如数据类型的定义,语法结构,内置对象和方法

不同点

从用途中区分JavaScript的主要功能是DOM(操作页面节点的一些方法)和BOM(操作浏览器的一些方法)

Node.js的主要功能是os(系统操作)、file(文件操作)、net(网络操作)、database(数据库操作)

在js中的顶层对象是window,其实在js中也有global对象,只是不对外访问而已。 在node中的顶层对象是global。注意:在node中也没有window对象

我们通过 var 申明的变量并非全局而是该模块作用域下的

原文地址:https://www.cnblogs.com/LO-ME/p/10457834.html

时间: 2024-08-28 04:36:39

node.js 概述与安装以及环境搭建的相关文章

Node.js【2】开发环境搭建(Windows、Linux&Mac)

安装方式有非常多种,以下仅仅是我喜欢的一种方式,安装的路径不一定要跟我一样. 眼下最新的版本号是v0.10.28 Windows 1.下载(放到E:\node\nodejs): http://nodejs.org/dist/latest/x64/node.exe http://nodejs.org/dist/npm/npm-1.4.9.zip 2.解压(到当前文件夹):npm-1.4.9.zip 3.环境变量: Path里面添加?:E:\node\nodejs 4.改动npm配置: C:\Use

Node.js自学之路——1.环境搭建

序—— <Node.js自学之路>系列文章,将记录我学习基于Node.js进行Web开发的过程. Node.js是基于V8引擎运行的开发平台,执行JavaScript速度快.性能好:也因其以JavaScript作为开发语言,对于前端工程师而言,它的学习曲线更低.开发效率更高. 一.安装Node.js 1.进入Node.js官网下载并安装 2.启动cmd输入命令查看node及npm版本 node -v npm -v npm是node完成安装后自带的包管理器 二.安装Express express

Node.js 切近实战(一) 之环境搭建

哥们先来吐槽一下,最近面试别人的一些经历.有的小伙干了五年,这五年干的是同样的活,三层架构,ASP.NET MVC,Jquery.看简历还能用,结果面试中才知道这五年自己没写过泛型类,泛型方法,委托自定义事件也都没用过,还说抽象类中必须都是抽象方法才可以.还有一小伙,干了十年,泛型委托一概不清楚.最近有个干了9年的,也呆过几家外企,感觉还挺牛,来了之后果然牛,敲着个二郎腿,声音比我还大,搞得好像他在面试我.9年了,只会最常用的一些东西,asp.net mvc,asp.net webforms,W

Node.js 概述

JavaScript 标准参考教程(alpha) 草稿二:Node.js Node.js 概述 GitHub TOP Node.js 概述 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 简介 安装与更新 版本管理工具nvm 基本用法 REPL环境 异步操作 全局对象和全局变量 模块化结构 概述 核心模块 自定义模块 异常处理 try-catch结构 回调函数 EventEmitter接口的error事件 uncaughtException事件 unhandled

Node.js入门:Node.js&amp;NPM的安装与配置

Node.js安装与配置  Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0.6.x的版本上介绍Node.js的安装和配置.(本文一律以0.6.1为例,0.6的其余版本,只需替换版本号即可.从http://nodejs.org/#download可以查看到最新的二进制版本和源代码). Windows平台下的Node.js安装 在过去,Node.js一直不支持在Windows平台下原生

Node.js与Express4安装与配置

Nodejs简介 Node.js 基于 Chrome JavaScript 运行环境,用于便捷地搭建快速.可扩展的网络应用. 它使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效, 非常适合于运行在分布式设备的数据密集型实时应用. 当前版本:v0.12.4 安装配置Node.js 在 官网下载页 根据自己的平台选择安装程序.对于Windows有msi与exe两种选择.msi会自动装好node与npm,同时设置一些环境变量.为了学习和配置上的灵活性,这里选择下载64位的exe文件. 建立

Windows下Node.js+Express+WebSocket 安装配置

Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V8引 擎执行Javascript的速度非常快,性能非常好.Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好.Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的

&lt;亲测&gt;CentOS 7.3下Node.js 8.6安装配置(含NPM以及PM2)

CentOS 7.3下Node.js 8.6安装配置 2017年09月30日 14:12:02 阅读数:2245更多 个人分类: Nodejs 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mawenwu1983/article/details/78142253 1.官网下载 https://nodejs.org/en/download/current/ https://nodejs.org/dist/v8.6.0/node-v8.6.0-li

小白从零开始学编程--python安装与环境搭建

前言 从2020年3月份开始,计划写一系列文档--<小白从零开始学编程>,记录自己从0开始学习的一些东西. 第一个系列:python,计划从安装.环境搭建.基本语法.到利用Django和Flask两个当前最热的web框架完成一个小的项目 第二个系列:可能会选择Go语言,也可能会选择Vue.js.具体情况待定,拭目以待吧... python安装与配置 python2 在2020年初开始已经不再维护,所以学习只讨论python3 windows环境 下载python3安装包 到官方网站下载选择合适