NodeJs的简介及安装

首先 分享一下NodeJs的应用场景吧;


Web聊天室(IM):Express + Socket.io
socket.io一个是基于Nodejs架构体系的,支持websocket的协议用于时时通讯的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io彻底由javascript实现。实现群聊或者私聊的功能!
javascript

 Web爬虫:Cheerio/Request
cheerio 是一个为服务器特别定制的,快速、灵活、封装jQuery核心功能工具包。Cheerio包括了 jQuery核心的子集,从jQuery库中去除了全部DOM不一致性和浏览器不兼容的部分,揭示了它真正优雅的API。Cheerio工做在一个很是简 单,一致的DOM模型之上,解析、操做、渲染都变得难以置信的高效。基础的端到端的基准测试显示Cheerio大约比JSDOM快八倍(8x)。 Cheerio封装了@FB55兼容的htmlparser,几乎可以解析任何的 HTML 和 XML document。
php

 Web博客:Hexo
Hexo 是一个简单地、轻量地、基于Node的一个静态博客框架。经过Hexo咱们能够快速建立本身的博客,仅须要几条命令就能够完成。
发布时,Hexo能够部署在本身的Node服务器上面,也能够部署github上面。对于我的用户来讲,部署在github上好处颇多,不只能够省 去服务器的成本,还能够减小各类系统运维的麻烦事(系统管理、备份、网络)。因此,基于github的我的站点,正在开始流行起来….
html

Web论坛: nodeclub
Node Club 是用 Node.js 和 MongoDB 开发的新型社区软件,界面优雅,功能丰富,小巧迅速, 已在Node.js 中文技术社区 CNode 获得应用,但你彻底能够用它搭建本身的社区。
前端

 Web幻灯片:Cleaver
Cleaver 能够生成基于Markdown的演示文稿。若是你已经有了一个Markdown的文档,30秒就能够制做成幻灯片。Cleaver是为Hacker准备的工具。
java

 前端包管理平台: bower.js
Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,经过 Bower 来管理模块间的这种联系。
node

 OAuth认证:Passport
Passport项 目是一个基于Nodejs的认证中间件。Passport目的只是为了“登录认证”,所以,代码干净,易维护,能够方便地集成到其余的应用中。Web应用 通常有2种登录认证的形式:用户名和密码认证登录,OAuth认证登录。Passport能够根据应用程序的特色,配置不一样的认证机制。本文将介绍,用户 名和密码的认证登录。
python

定时任务工具: later
Later 是一个基于Nodejs的工具库,用最简单的方式执行定时任务。Later能够运行在Node和浏览器中。
mysql

 浏览器环境工具: browserify
Browserify 的出现可让Nodejs模块跑在浏览器中,用require()的语法格式来组织前端的代码,加载npm的模块。在浏览器中,调用browserify编译后的代码,一样写在  复制连接
jquery

了解了这么多的应用的场景,那我们先来介绍一下  什么是NodeJs;
linux

1、NodeJS简介

      首先咱们来思考一个问题:咱们都知道几乎全部现代主流浏览器都全面支持了ECMAScript 5.1版标准,而JavaScript的标准是ECMAScript那么咱们就容易认为JavaScript

是一种浏览器端的解释型编程脚本。那么脱离了浏览器,JavaScript还可以解释运行吗? 答案是确定的,也就是说脱离了浏览器,在特定环境下JavaScript仍是能运行的。

JavaScript向来以Web网页的脚本语言而著称,但如今也能够用在许多非浏览器环境,例如node.js或者Apache CouchDB。本文就是基于NodeJS来进行探讨。

    NodeJS是什么?

      根据百度百科解释,Node.js是一套用来编写高性能网络服务器的JavaScript工具包。Node.js是一个能够快速构建网络服务及应用的平台,该平台的构建是基于Chrome's

 JavaScript runtime,也就是说,实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装。V8引 擎执行Javascript的速度很是快,性能很是好。

      NodeJS并非提供简单的封装,而后提供API调用,若是是这样的话那么它就不会有如今这么火了。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非

览器环境下运行得更好。例如,在服务器环境中,处理二进制数据一般是必不可少的,但Javascript对此支持不足,所以,V8.Node增长了Buffer类,方便而且高效地 处理二进

制数据。所以,Node不只仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力。

    Node.js的优势

      一、基于V8虚拟机,可构建高性能服务器

       V8引擎自己使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码与用C这类高级语言写出来的代码性能相差无几,却节省了开发成本。对性能的

苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优势,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使

得编写可扩展性高的服务器变得既容易又安全。提升服务器性能的技巧有多种多样。Node选择了一种既能提升性能,又能减低开发复杂度的架构。这是一个很是重要的特性。

并发编程一般很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

      二、单线程

      Node.js能够在不新增额外线程的状况下,依然能够对任务进行并行处理 —— Node.js是单线程的。它经过事件轮询(event loop)来实现并行操做,对此,咱们应该要充

分利用这一点 —— 尽量的避免阻塞操做,取而代之,多使用非阻塞操做。

      三、可利用Javascript进行后台开发

      虽然让Javascript运行于服务器端不是Node的独特之处,但倒是其一强大功能。不得不认可,浏览器环境限制了咱们选择编程语言的自由。任何服务器与日益复杂的浏览器

客户端应用程序间共享代码的愿望只能经过Javascript来实现。虽然还存在其余一些支持Javascript在服务器端 运行的平台,但由于上述特性,Node发展迅猛,成为事实上的平台。

      四、非阻塞IO

      Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文

件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤为是对于熟悉onmouseover、onclick等DOM事件的用户,更

有一种似曾相识的感受。


Node.js 的安装.

这里我只简单介绍一下在Linux的环境下的安装.

一.Debian 系列的安装方法.

①使用源码安装

首先须要有Python,g++,make,checkinstall ,fakeroot 等工具.


sudo apt-get install python g++ make checkinstall fakeroot

src=$(mktemp -d) && cd $src   //注意这里是创建一个临时的文件夹,用于下载咱们的nodejs的源码包,而后再进行安装.

wget  http://nodejs.org/dist/node-lastest.tar.gz   //使用wget 获取安装包.

tar xzvf node-lastest.tar.gz && cd node-v*  //解压缩而且进入压缩以后的文件夹.

./configure //配置安装参数

make && make install  //编译并安装.

安装npm的包管理工具.

curl https://www.npmjs.org/install.sh | sudo sh

②命令安装

sudo apt-get install nodejs

安装npm包管理工具.

sudo apt-get install npm

最后想说,使用的时候,咱们直接在命令行里面输入node

就能够进入node的命令界面.

这个终端很是的好用.能够用来帮助咱们测试javascript的语法特性和更好的理解javascript,可是它不支持咱们浏览器的BOM, DOM 对象.

可是支持javascript的内置对象. 

相关文章
相关标签/搜索