- Node.js 教程
- Node.js - 主页
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js - 全局对象
- Node.js - 实用模块
- Node.js - Web 模块
- Node.js - Express 框架
- Node.js - RESTFul API
- Node.js - 扩展应用程序
- Node.js - 打包
- Node.js - 内置模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用的资源
- Node.js - 讨论
Node.js - 简介
什么是 Node.js?
Node.js 是一个基于 Google Chrome 的 JavaScript 引擎(V8 引擎)构建的服务器端平台。Node.js 由 Ryan Dahl 于 2009 年开发,最新版本为 v0.10.36。Node.js官方文档提供的定义如下 -
Node.js 是一个基于Chrome 的 JavaScript 运行时构建的平台,用于轻松构建快速且可扩展的网络应用程序。Node.js 使用事件驱动的非阻塞 I/O 模型,使其轻量级且高效,非常适合跨分布式设备运行的数据密集型实时应用程序。
Node.js 是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序。Node.js 应用程序是用 JavaScript 编写的,可以在 OS X、Microsoft Windows 和 Linux 上的 Node.js 运行时内运行。
Node.js 还提供了丰富的各种 JavaScript 模块库,这在很大程度上简化了使用 Node.js 的 Web 应用程序的开发。
Node.js = Runtime Environment + JavaScript Library
Node.js 的特点
以下是使 Node.js 成为软件架构师首选的一些重要功能。
异步和事件驱动- Node.js 库的所有 API 都是异步的,即非阻塞的。它本质上意味着基于 Node.js 的服务器永远不会等待 API 返回数据。服务器在调用下一个 API 后移动到下一个 API,Node.js 的 Events 通知机制可以帮助服务器从上一个 API 调用中获取响应。
非常快- Node.js 库基于 Google Chrome 的 V8 JavaScript 引擎构建,代码执行速度非常快。
单线程但高度可扩展- Node.js 使用带有事件循环的单线程模型。事件机制帮助服务器以非阻塞方式响应,并使服务器具有高度可扩展性,而不是创建有限线程来处理请求的传统服务器。Node.js 使用单线程程序,与 Apache HTTP Server 等传统服务器相比,同一个程序可以为更多数量的请求提供服务。
无缓冲- Node.js 应用程序从不缓冲任何数据。这些应用程序只是以块的形式输出数据。
许可证- Node.js 在MIT 许可证下发布。
谁使用 Node.js?
以下是 github wiki 上的链接,其中包含使用 Node.js 的项目、应用程序和公司的详尽列表。此列表包括 eBay、通用电气、GoDaddy、微软、PayPal、Uber、Wikipins、Yahoo! 和 Yammer 等。
概念
下图描述了 Node.js 的一些重要部分,我们将在后续章节中详细讨论。
在哪里使用 Node.js?
以下是 Node.js 证明自己是完美技术合作伙伴的领域。
- I/O 绑定应用程序
- 数据流应用
- 数据密集型实时应用程序 (DIRT)
- 基于 JSON API 的应用程序
- 单页应用程序
哪些地方不应该使用 Node.js?
不建议将 Node.js 用于 CPU 密集型应用程序。