`
yanwenjinhaha
  • 浏览: 16467 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

NodeJs - 第一章

 
阅读更多
第一章

Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台。

Node.js 是一个为实时Web(Real-time Web)应用开发而诞生的平台,它从诞生之初就充分考虑了在实时响应、超大规模数据要求下架构的可扩展性。这使得它摒弃了传统平台依靠多线程来实现高并发的设计思路,而采用了单线程、异步式I/O、事件驱动式的程序设计模型。

Node.js 不是一种独立的语言,与 PHP、Python、Perl、Ruby 的“既是语言也是平台”
不同。Node.js 也不是一个 JavaScript 框架,不同于 CakePHP、Django、Rails。Node.js 更不是浏览器端的库,不能与 jQuery、ExtJS 相提并论。Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为脚本语言世界的一等公民,在服务端堪与 PHP、Python、Perl、Ruby 平起平坐。

Node.js 中所谓的 JavaScript 只是 Core JavaScript,或者说是 ECMAScript 的一个实现,不包含 DOM、BOM 或者 Client JavaScript。这是因为 Node.js 不运行在浏览器中,所以不需要使用浏览器中的许多特性。
Node.js 是一个让 JavaScript 运行在浏览器之外的平台。它实现了诸如文件系统、模块、包、操作系统 API、网络通信等 Core JavaScript 没有或者不完善的功能。

随着 Node.js 的成功,各种浏览器外的 JavaScript 实现逐步兴起,因此产生了 CommonJS 规范。CommonJS 试图拟定一套完整的 JavaScript 规范,以弥补普通应用程序所需的 API,譬如文件系统访问、命令行、模块管理、函数库集成等功能。CommonJS 制定者希望众多服务端 JavaScript 实现遵循CommonJS 规范,以便相互兼容和代码复用。Node.js 的部份实现遵循了CommonJS规范,但由于两者还都处于诞生之初的快速变化期,也会有不一致的地方。

Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方
案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切
换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。

Node.js 的异步机制是基于事件的,所有的磁盘 I/O、网络通信、数据库查询都以非阻塞
的方式请求,返回的结果由事件循环来处理。

Node.js 的开发者在 libev 和 libeio 的基础上还抽象出了层 libuv。对于 POSIX①操作系统,libuv 通过封装 libev 和 libeio 来利用 epoll 或 kqueue。而在 Windows 下,libuv 使用了 Windows的 IOCP(Input/Output Completion Port,输入输出完成端口)机制,以在不同平台下实现同样的高性能。
分享到:
评论

相关推荐

    ignite-nodejs-chapter1

    标题 "ignite-nodejs-chapter1" 暗示我们正在探讨的是一个关于使用Node.js的教程或项目,可能属于一个系列教程的第一章。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用...

    Ignite-NodeJs-Project2:第2章-API

    在本项目"Ignite-NodeJs-Project2:第2章-API"中,我们将深入探讨如何使用TypeScript构建强大的Node.js应用程序,特别是关注API的开发。TypeScript是JavaScript的一个超集,提供了静态类型检查、类、接口等特性,极大...

    ignite-nodejs-workspace:训练营点燃点#1-Trilha NodeJS

    Exercíciosdas aulas训练营Ignite-Trilha NodeJS :rocket: 概念的实现: 进行训练营的地点: Índicedas aulas第一章 :construction: 进行中... :construction: :construction: 进行中... :construction:第二章第三...

    nodejs-mongoose-intro:NodeJS和Mongoose简介

    Haviv的“ MEAN Web Development”第5章的注释。摘录用于教育目的)。 Mongoose是一个Node.js模块,它充当MongoDB文档的ORM。 但是,在NoSQL环境下,更合适的说法是Mongoose提供了对象文档映射(ODM)。 虽然...

    nodejs-basic

    基本的nodejs 基于第2章的简单示例项目,在不依赖项的情况下探索使用NodeJS进行路由,这是一个大型项目的一部分,以使自己熟悉NodeJS和ExpressJS

    七天学会NodeJS

    ### 第一章:NodeJS基础 #### 1.1 什么是NodeJS? NodeJS是一种基于Chrome V8引擎的JavaScript运行环境。它允许开发者使用JavaScript编写服务器端应用程序。与传统的客户端JavaScript不同,NodeJS可以在服务器端...

    Nodejs实战前四章

    通常,错误会作为回调函数的第一个参数传入,或者通过`try...catch`语句捕获。良好的错误处理可以确保程序的健壮性。 总的来说,Node.js实战前四章的学习将帮助你建立对Node.js基础的理解,包括其核心机制和常用API...

    ignite-ch01-d01-nodejs

    标题 "ignite-ch01-d01-nodejs" 暗示了这可能是一个关于使用Node.js的教程或项目,可能是 Ignite 系列教程的第一章第一天的内容。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端...

    Node.js in Action 第二版 第一章

    Node.js in Action 第二版 第一章的知识点主要包括Node.js的基础介绍、编写Node.js程序的基本原理、以及网络爬虫自动化网络数据处理的相关内容。 首先,Node.js是一种基于Chrome V8引擎的JavaScript运行时环境,它...

    nodejs.pdf

    Wilson在书中通过具有实用价值的例子,尤其是第七章,向读者展示了如何运用Node.js进行编程。书中不仅教授了基础的语法和工具使用,还深入探讨了如何构建可扩展的服务器端应用。这种结合理论与实践的方式,有助于...

    ignite-primeiro-projeto-nodejs:由RocketSeat为Ignite Bootcamp第一章第二课制作的存储库

    FinAPI-Financeira 要求 Deve serpossívelcriar uma conta Deve serpossívelbuscar o extratobancáriodo cliente 开发者的实现和发展 现实生活中的一切 []客户数据的Deve serpossívelbuscar或Extratobancá...

    wrinkle:一个小的 nodejs 服务器和脚本,通过 tesseract 从图像中提取字母

    皱纹一个小的 nodejs 服务器和脚本,通过 tesseract 从图像中提取字母这是由项目 naptha 使用的这也是对我童年的参考和童年,我的意思是六年级阅读圈第 1 章:准备好东西 sudo apt-get install git-core subversion ...

    Node.JS第一章简介介绍

    Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装;该文档介绍从javascirpt、V8、优缺点、涉及领域、知识点,阐述了Node.js的开发涉及到领域和潜力。

    chapter02-desafio02-trilha-nodejs

    在本项目"chapter02-desafio02-trilha-nodejs"中,我们可以看出这是一个关于Node.js学习路径的第二章第二个挑战。Node.js是JavaScript的一个运行环境,它允许开发者在服务器端使用JavaScript进行开发,提供了丰富的...

    nodejs开发微博实例

    然后选择了另外一本教材《nodejs开发指南》,由于看过了《深入浅出nodejs》,直接跳过了这本书的前几章,写起了该书第五章的微博实例。作为一个新手,在写的过程中,才逐渐发现因为express版本升级的原因,书中的...

Global site tag (gtag.js) - Google Analytics