NodeJS 实战(一) - 介绍和安装
NodeJS 实战(一) - 介绍和安装
介绍
Node.js不是JS应用、而是JS运行平台
看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个 Javascript的运行环境。为什么采用C++语言呢?据Node.js创始人Ryan Dahl回忆,他最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了 C++语言。既然不是Javascript应用,为何叫.js呢?因为Node.js是一个Javascript的运行环境。提到Javascript, 大家首先想到的是日常使用的浏览器,现代浏览器包含了各种组件,包括渲染引擎、Javascript引擎等,其中Javascript引擎负责解释执行网 页中的Javascript代码。作为Web前端最重要的语言之一,Javascript一直是前端工程师的专利。不过,Node.js是一个后端的 Javascript运行环境(支持的系统包括*nux、Windows),这意味着你可以编写系统级或者服务器端的Javascript代码,交给 Node.js来解释执行,简单的命令类似于:
#node helloworld.js
Node.js采用了Google Chrome浏览器的V8引擎,性能很好,同时还提供了很多系统级的API,如文件操作、网络编程等。浏览器端的Javascript代码在运行时会受到 各种安全性的限制,对客户系统的操作有限。相比之下,Node.js则是一个全面的后台运行时,为Javascript提供了其他语言能够实现的许多功 能。
Node.js采用事件驱动、异步编程,为网络服务而设计
事件驱动这个词并不陌生,在某些传统语言的网络编程中,我们会用到回调函数,比如当socket资源达到某种状态时,注册的回调函数就会执行。 Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。以Net模块为例,其中的net.Socket对象就 有以下事件:connect、data、end、timeout、drain、error、close等,使用Node.js的开发人员需要根据自己的业 务逻辑注册相应的回调函数。这些回调函数都是异步执行的,这意味着虽然在代码结构中,这些函数看似是依次注册的,但是它们并不依赖于自身出现的顺序,而是 等待相应的事件触发。事件驱动、异步编程的设计(感兴趣的读者可以查阅笔者的另一篇文章《Node.js的异步编程风格》), 重要的优势在于,充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。此类设计非常适合于后端的网络服务编 程,Node.js的目标也在于此。在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人 员可以提高资源的利用率,性能也会改善。
安装
首先从官网上下载NodeJS,下载完成后按照提示进行安装。
node.exe 是主程序
node_modules 是模块库,包含文件操作模块,HTTP服务器模块等。
npm.cmd 是模块管理和分发工具,用来管理NodeJS下的模块。
接着是万年不变的helloworld
创建一个名为 app.js 的文件,输入以下代码
var http = require("http"); var app = http.createServer(function(req,res){ res.writeHead(200, {"Content-Type": "text/html"}); res.write("hello world!"); res.end(); }); app.listen(3000);
保存后,运行脚本,windows: Shift+鼠标右键, 选择在此处打开命令窗口
然后输入:
node app.js
打开浏览器,输入 localhost:3000。如果页面上成功显示了 "hello world!",说明部署OK啦
浙公网安备 33010602011771号