Node.js—简介

一、Node.js是什么

1. 基本概述

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

Node.js 有着强大而灵活的包管理器(node package manager, npm),目前已经有上万个第三方模块,其中有网站开发框架,有 MySQL、PostgreSQL、MongoDB数据库接口,有模板语言解析、 CSS 生成工具、邮件、加密、图形、调试支持,甚至还有图形用户界面和操作系统 API工具。

Node.js 可以作为服务器向用户提供服务,与 PHP、 Python、 Ruby on Rails 相比,它跳过了 Apache、 Nginx 等 HTTP服务器,直接面向前端开发。 Node.js 的许多设计理念与经典架构(如 LAMP)有着很大的不同,可提供强大的伸缩能力 。

2. 相关名词介绍

(1) JavaScript

JavaScript是由ECMAScript、文档对象模型(DOM)和浏览器对象模型(BOM)组成的,而Mozilla则指出JavaScript由Core JavaScript和Client JavaScript组成的。Node.js中的JavaScript只是Core JavaScript,或者说是ECMAScript的一个实现,不包含DOM、BOM或者Client JavaScript,这是因为Node.js不运行在浏览器中,所以不需要使用浏览器中的许多特性。

(2) V8引擎

Node.js 的 JavaScript 引擎是 V8,来自 Google Chrome 项目。 V8 号称是目前世界上最快的 JavaScript 引擎,经历了数次引擎革命,它的 JIT(Just-in-time Compilation,即时编译)执行速度已经快到了接近本地代码的执行速度。 Node.js 不运行在浏览器中,所以也就不存在 JavaScript 的浏览器兼容性问题,你可以放心地使用 JavaScript 语言的所有特性。

二、Node.js能做什么

  • 具有复杂逻辑的网站;
  • 基于社交网络的大规模 Web 应用;
  • Web Socket 服务器;
  • TCP/UDP 套接字应用程序;
  • 命令行工具;
  • 交互式终端程序;
  • 带有图形用户界面的本地应用程序;
  • 单元测试工具;
  • 客户端 JavaScript 编译器;
  • Node.js 内建了 HTTP 服务器支持,也就是说你可以轻而易举地实现一个网站和服务器的组合。

三、Node.js异步I/O与事件驱动

Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。 传统高并发架构方案是多线程模式,Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。 Node.js 在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。

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

Node.js 进程在同一时刻只会处理一个事件,完成后立即进入事件循环检查并处理后面的事件。这样做的好处是,CPU 和内存在同一时间集中处理一件事,同时尽可能让耗时的 I/O 操作并行执行。对于低速连接攻击, Node.js 只是在事件队列中增加请求,等待操作系统的回应,因而不会有任何多线程开销,很大程度上可以提高 Web 应用的健壮性,防止恶意攻击。

四、Node.js性能

Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。 Node.js 除了使用 V8 作为JavaScript引擎以外,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O。

Node.js 的开发者在 libev 和 libeio 的基础上还抽象出了层 libuv。对于 POSIX①操作系统,libuv 通过封装 libev 和 libeio 来利用 epoll 或 kqueue。

五、CommonJS规范

CommonJS 诞生了。 CommonJS 试图定义一套普通应用程序使用的API,从而填补 JavaScript 标准库过于简单的不足。

CommonJS 规范包括了模块(modules)、包(packages)、系统(system)、二进制(binary)、控制台(console)、编码(encodings)、文件系统(filesystems)、套接字(sockets)、单元测试(unit testing)等部分。

原文地址:https://www.cnblogs.com/hq82/p/10831569.html

时间: 2024-11-13 19:38:26

Node.js—简介的相关文章

01 Node.js简介, 安装&配置

Node.js 简介 Node.js 是什么 Node.js 有着强大而灵活的包管理器(node package manager,npm) 目前, 已经有强大第三方工具模块, 例如数据库连接, 网站开发框架, CSS生成器, 操作系统API, 网络通信 等. Node.js 是什么 ? 是一个让 javascript 运行在服务器端的平台, 以前javascript只能运行在浏览器中,  node.js 可以解析 javascript. CommonJS 试图设计一套Javascript的规范.

探秘Node.js(一)——Node.js简介及安装配置

1.Node.js 简介及特点: Node.js 是一个可以让 JavaScript 运行在服务器端的平台,它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python. Perl. PHP. Ruby 程序一样.我们可以用 Node.js 轻松地进行服务器端应用开发,Python. Perl. PHP. Ruby 能做的事 Node.js 几乎都能做,而且可以做得更好. Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计.对于高并发的解决方

node.js 简介

简介: Node,是一个可以让 JavaScript 运行在服务器端的平台.它可以让 JavaScript 脱离浏览器的束缚运行在一般的服务器环境下 Node.js 是一个为实时Web( Real-time Web)应用开发而诞生的平台,它从诞生之初就充分 考虑了在实时响应.超大规模数据要求下架构的可扩展性.这使得它摒弃了传统平台依靠多线 程来实现高并发的设计思路,而采用了单线程.异步式I/O.事件驱动式的程序设计模型.这些 特性不仅带来了巨大的性能提升,还减少了多线程程序设计的复杂性,进而提高

第一节:Node.js简介

1.什么是Node.js? Node.js是一个用于开发各种Web服务器的开发工具,仔Node.js服务器中,运行的高性能V8 JavaScript脚本语言,该语言是一种可以运行仔服务器端的JavaScript脚本语言.它为了提高性能,采用了以下两种机制:非阻塞型I/O和事件环,由于采用了非阻塞型I/O,所以在执行了访问数据库的代码后将立即转而执行其后的代码,把数据库返回结果的处理代码放在回掉函数中执行,从而提高了程序的执行效率,在Node.js中,在一个时刻只能执行一个事件回掉函数,但是在执行

Node.js简介

Express框架 Node.js到底是什么呢? 要问Node.js到底是什么,这个跟javascript有关,javascript本身是一种脚本语言,也就是它只能在网页页面中运行,而不能在服务器中运行,而随着我们软件行业的发展没我们的javascript翻身了,它也可以在在服务器上运行了,而它的服务器就是Node.js,就像Java一样运行在tomcat上.所有Node.js即是语言又是平台.让javascript变成一等公民的平台.

Node.js简介(转)

目前,Node.js是在前端页面开发中十分受欢迎的,它是一套用来编写高性能网络服务器的JavaScript工具包,在本文中,将带领各位初学者介绍Node JS的基本知识,要求本文的阅读对象为有一定Javascript和其他开发语言基础的读者. 什么是Node.js Node是一个Javascript运行环境(runtime).实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装.V8引 擎执行Javascript的速度非常快,性能非常好.Node对一些特殊用例进行

node.js入门系列(一)--Node.js简介

什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. 每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情.例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象.而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了fs.

Node.js简介——入门级别

简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 如果你是一个前端程序员,你不懂的像PHP.Python或Java等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择. Node.js 是运行在服务端的 JavaSc

Node.js系列教程(一):Node.js简介

学习一门新的语言,首先需要大致了解一下语言的由来及基本特性. Node.js发布于2009年5月,由Ryan Dahl开发,即javascript与Google V8 web服务引擎的结合. 简单来说,Node.js就是一个运行于服务器端的javascript. 它的特点,单线程.非阻塞I/O.事件驱动. 由于是基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 轻量高效,非常适合在分布式设备上运行数据密集型的实时应用. …… 原文地址:https://www