Node.js包罗万象,但最主要的一点是,它提供了一种在Web浏览器之外运行Javascript的途径。
Javascript广泛应用于网站的前端开发。Node使得这种流行的编程语言能够在更多环境下运行,甚至是网站的服务器端。它有几个值得我们关注的特性:
Node是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎(应用于Google Chrome浏览器)进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。例 如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地 处理二进制数据。因此,Node不仅仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力。
V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类高级语言编写出来的代码与用C这类低 级语言写出来的代码性能相差无几,却节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂 度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。
Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。当 你向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。
虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任 何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。
在Node启动的很短时间内,社区就已经贡献了大量的扩展库(模块)。其中很多是连接数据库或是其他软件的驱动,但还有很多是凭他们的实力制作出来的非常有用的软件。
最后,不得不提到的是Node社区。虽然Node项目还非常年经,但很少看到对一个项目如此狂热的社区。不管是新手,还是专家,大家都围绕着项目,使用并贡献自已的能力,致力于打造一个探索、支持、分享、听取建议的乐土。
(编者按:作为一个码农,Wilson总是乐于关注业界的新鲜事。最近技术圈内的几位童鞋在讨论Node.js,于是跟着了解了一下,发现这个东西还是蛮值得关注的,于是译了本文与大家分享,原文来自技术布道者Tom Hughes-Croucher正在编写的关于Node.js开发指南的书<Up and running with Node.js>预览版(点这里下载)的第一章,原文标题为<A very brief introduction to Node.js>。另外,最近,Node.js还获得知名云计算服务提供商Joyent的资助, 其项目负责人Ryan Dahl也加盟了Joyent,预计Node.js将在企业级应用中获得更多机会。)
分享到:
相关推荐
Node.js是一款开源、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地扩展了JavaScript的应用范围,不再局限于浏览器环境。 Node.js的核心特性包括事件驱动、非阻塞I/O模型,这些...
标题中的“用p5.js和Node.js编写的用于为浏览器模拟力学物理”表明这是一个使用JavaScript库p5.js和服务器端JavaScript平台Node.js开发的项目,目的是在浏览器环境中创建一个力学物理实验室。这样的项目通常涉及图形...
在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。本主题聚焦于"Node.js-轻量级url参数处理兼容浏览器和Node.js环境",这意味着我们将讨论如何在...
在当今的Web开发领域,JavaScript不再仅仅局限于浏览器中的客户端编程,而是通过Node.js拓展到了服务器端。Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者使用JavaScript编写服务器端应用,极...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其高效的非阻塞I/O模型和丰富的生态系统,成为了开发Web应用的热门选择,尤其适用于创建服务器端和网络应用。 一、Node.js基础知识 1. JavaScript运行...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。这个项目标题"Node.js简介:Projetobásicopara me介绍了node.js...
这就是`dexterous`——一个轻量级、同构的JavaScript中间件服务器,它能够无缝地运行在浏览器的Web Workers和Node.js环境中。 `dexterous`的设计理念是提供一种简单、一致的API,无论是在Node.js服务器还是浏览器的...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许我们在服务器端编写JavaScript代码,实现强大的网络应用功能。结合CSS和前端技术,我们可以创建出动态且交互式的时钟界面。 首先,我们需要了解Node.js...
4. Node.js与传统JavaScript的差异:书中将介绍在Node.js环境和浏览器环境中JavaScript开发的不同,帮助读者理解Node.js的特性和优势。 5. 构建基础HTTP服务器:书中将教授如何创建一个基础的HTTP服务器,这是Node....
Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地扩展了JavaScript的应用范围,不再局限于浏览器端。 描述中提到的“Node JS library installer for ...
Node.js 是一个强大的开源开发平台,它允许开发者使用 JavaScript 编程语言进行服务器端编程,打破了 JavaScript 仅能在浏览器环境中运行的传统。这个标题 "node-v18.14.0-x64.7z" 指的是 Node.js 的一个特定版本...
运行于浏览器的Javascript,浏览器就是Javascript代码的解析器,而Node.js则是服务器端JS的代码解析器,存于服务器端的JS代码由Node.js来解析和应用。 JS解析器只是JS代码运行的一种环境,浏览器是JS运行的一种...
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 ...
在Node.js中,JavaScript不再局限于浏览器环境,而是可以用来构建高效、可伸缩的网络应用。其非阻塞I/O模型和事件驱动的特性使其特别适合处理并发连接,比如实时聊天应用、流媒体服务或者大型数据处理等场景。 Node...
首先,Node.js本身是一个基于Chrome V8引擎的JavaScript运行环境,它能够让JavaScript脱离浏览器,在服务器端运行。Node.js最大的特点就是异步非阻塞IO操作,这使得它非常适合于处理高并发的场景。Node.js的模块化...
而Node.js则是一种基于Chrome V8引擎的JavaScript运行环境,它的异步、事件驱动的特性使其在构建高性能网络应用时表现出色,尤其是对于实时通信的在线游戏。 一、HTML5的新特性 1. Canvas绘图:HTML5的Canvas提供了...
标题中的“Node.js-一个新的简约的web浏览器”表明我们将探讨如何使用Node.js这一JavaScript运行环境来构建一个轻量级的Web浏览器。Node.js以其非阻塞I/O模型和高效的性能在服务器端编程中广受欢迎,但构建Web浏览器...
javascript:JavaScript 是一种广泛使用的脚本语言,主要用于网页开发,但也可以用于服务器端开发(如 Node.js)和其他非浏览器环境。以下是 JavaScript 编程基础和 Web 开发入门的简要教程。 JavaScript 编程基础 1...
Node.js虽然主要用于服务器端,但在某些情况下也需要考虑浏览器兼容性,特别是在构建前端库或者服务端渲染应用时。"Node.js-获取polyfill支持所有主流浏览器甚至是IE6, IE7, IE8"这个话题就针对这一需求提供了解决...