一、什么是 Node.js?
Node.js 不是一门语音,不是库,不是框架,只是一个 JavaScript 运行时环境。JS 是脚本语言, 脚本语言都需要一个解析器才能运行。对于写在 HTML 页面里的 JS, 浏览器充当了解析器的角色。而对于需要独立运行的 JS,ode.js 就是一个解析器。解析器需要运行引擎才能对 JavaScript 进行解析,所以,Node.js 就是一个基于 Chrome V8 引擎的 JavaScript 运行环境。简单来说,就是 Node.js 可以解析和执行 JavaScript 代码。
二、Node.js 的特性
- 动态语言:开发效率非常高,并有能力构建复杂系统。
- 性能和 I/O 负载:Nodejs 非常好的解决了 IO 密集的问题,通过异步 IO 来实现。
- 连接的内存开销:每个 Node.js 进程可以支持超过 12 万活跃的连接,每个连接消耗大约 2K 的内存。
- 操作性:实现了 Nodejs 对于内存堆栈的监控系统。
三、Node.js 常见的应用场景
-
Web 开发:Express + EJS + Mongoose/MySQL express 是轻量灵活的 Nodejs Web 应用框架,它可以快速地搭建网站。Express 框架建立在 Nodejs 内置的 Http 模块上,并对 Http 模块再包装,从而实现 Web 请求处理的功能。ejs 是一个嵌入的 Javascript 模板引擎,通过编译生成 HTML 的代码。mongoose 是 MongoDB 的对象模型工具,通过 Mongoose 框架,可以进行访问 MongoDB 的操作。mysql 是连接 MySQL 数据库的通信 API,可以进行访问 MySQL 的操作。通常用 Nodejs 做 Web 开发,需要 3 个框架配合使用,就像 Java 中 的SSH。
-
REST 开发:Restify restify 是一个基于 Nodejs 的 REST 应用框架,支持服务器端和客户端。restify 比起 express 更专注于 REST 服务,去掉了 express 中的 template, render 等功能,同时强化了 REST 协议使用,版本化支持,HTTP 的异常处理。
-
Web 聊天室(IM):Express + Socket.io socket.io 一个是基于 Nodejs 架构体系的,支持 websocket 的协议用于时时通信的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io 完全由 JavaScript 实现。
-
Web 爬虫:Cheerio/Request cheerio 是一个为服务器特别定制的,快速、灵活、封装 jQuery 核心功能工具包。Cheerio 包括了 jQuery 核心的子集,从 jQuery 库中去除了所有 DOM 不一致性和浏览器不兼容的部分,揭示了它真正优雅的 API。Cheerio 工作在一个非常简 单,一致的 DOM 模型之上,解析、操作、渲染都变得难以置信的高效。基础的端到端的基准测试显示 Cheerio 大约比 JSDOM 快八倍(8x)。 Cheerio 封装了 @FB55 兼容的 htmlparser,几乎能够解析任何的 HTML 和 XML document。
-
Web 博客:Hexo Hexo 是一个简单地、轻量地、基于 Node 的一个静态博客框架。通过 Hexo 我们可以快速创建自己的博客,仅需要几条命令就可以完成。 发布时,Hexo 可以部署在自己的 Node 服务器上面,也可以部署 github 上面。对于个人用户来说,部署在 github 上好处颇多,不仅可以省 去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。所以,基于 github 的个人站点,正在开始流行起来….
-
Web 论坛: nodeclub Node Club 是用 Node.js 和 MongoDB 开发的新型社区软件,界面优雅,功能丰富,小巧迅速, 已在 Node.js 中文技术社区 CNode 得到应用,但你完全可以用它搭建自己的社区。
-
前端包管理平台: bower.js Bower 是 twitter 推出的一款包管理工具,基于 Node.Js 的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系。
-
OAuth 认证:Passport Passport 项目是一个基于 NodeJS 的认证中间件。Passport 目的只是为了 "登录认证",因此,代码干净,易维护,可以方便地集成到其他的应用中。Web 应用 一般有 2种登录认证的形式:用户名和密码认证登录, OAuth 认证登录。Passport 可以根据应用程序的特点,配置不同的认证机制。本文将介绍,用户名和密码的认证登录。
-
定时任务工具: later Later 是一个基于 Nodejs 的工具库,用最简单的方式执行定时任务。Later 可以运行在 Node 和浏览器中。
-
命令行编程工具:Commander commander 是一个轻巧的 NodeJS 模块,提供了用户命令行输入和参数解析强大功能。commander 源自一个同名的 Ruby 项目。commander 的特性:自记录代码,自动生成帮助,合并短参数("ABC"=="-A-B-C"),默认选项,强制选项,命令解析,提示符。
-
客户端应用工具: node-webwit Node-Webkit 是 NodeJS 与 WebKit 技术的融合,提供一个跨 Windows、Linux 平台的客户端应用开发的底层框架,利用流行的 Web 技术 (Node.JS,JavaScript,HTML5)来编写应用程序的平台。应用程序开发人员可以轻松的利用Web技术来实现各种应用程序。Node- Webkit 性能和特色已经让它成为当今世界领先的 Web 技术应用程序平台。
-
操作系统: node-os NodeOS 是采用 NodeJS 开发的一款友好的操作系统,该操作系统是完全建立在 Linux 内核之上的,并且采用 shell 和 NPM 进行包管理,采用 NodeJS 不仅可以很好地进行包管理,还可以很好的管理脚本、接口等。目前,Docker 和 Vagrant 都是采用 NodeOS 的首个版本进行构建的。
四、Node.js 的安装
- 官网下载安装:nodejs.org/en/ 下载对应版本进行安装,如果已经安装了,不卸载的话会对原本的进行覆盖,安装过程比较简单,根据提示即可。
- 安装的验证:
- 在键盘按下【win+R】键,输入 cmd,然后回车,打开命令行界面
- 进入命令提示符窗口,分别输入以下命令,显示版本号,则安装成功
node -v 显示安装的 nodejs 版本
npm -v 显示安装的 npm 版本