Node.js 的认识

136 阅读5分钟

一、什么是 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/ 下载对应版本进行安装,如果已经安装了,不卸载的话会对原本的进行覆盖,安装过程比较简单,根据提示即可。
  • 安装的验证:
  1. 在键盘按下【win+R】键,输入 cmd,然后回车,打开命令行界面
  2. 进入命令提示符窗口,分别输入以下命令,显示版本号,则安装成功
node -v        显示安装的 nodejs 版本
npm -v        显示安装的 npm 版本