node.js 逐渐被我们所熟知,并且在 web 和 IOT 开发人员之间广为流传。那么,node.js 究竟是什么,为什么被业界用作主要的开发语言。 本文将为您一探究竟。
根据nodejs.org,“node.js 是一种基于 Chrome JavaScript 运行时的平台。” 换句话说,您为服务器编写的代码将以非常相似的方式在浏览器中执行。 您可以轻松地运用在其他地方学习的 JavaScript 技巧。 node.js 具备性能高、事件驱动和轻型化等特征,但其最大的优势是异步编程。
本文将以简单的方式介绍异步与同步编程之间的区别,以便帮助读者了解 node.js 的作用及其如此受欢迎的原因。
同步
假如您正在排队买电影票。 只有您前面的所有人买到票以后,您才能买票,您身后的人也是如此。
异步
您在餐厅吃饭,餐厅中还有许多其他人。 您正在点餐, 其他人也在点餐,而且他们无需等待您的餐食上齐之后便可点餐。 在厨房中,餐厅员工在有条不紊地进行自己的工作:烹饪、上菜和接单。 一旦烹饪完毕,顾客便可就餐。
//example 1 var result = database.query("SELECT * FROM sampletable"); console.log("finished"); console.log("start"); //example 2 database.query("SELECT * FROM sampletable", function(result) { console.log("finished"); }); console.log("start");
输出
为:
- finished
start - start
finished
区别在于,在第一个示例中,程序将在第一行阻止。 下一行 (console.log) 必须等待。 在第二个示例中,console.log 将在处理查询的同时执行。 也就是说,查询将在后台处理,程序可以处理其他任务。当查询数据准备就绪后,您可以随意处理这些数据。
简而言之: 第一个示例将会阻止,而第二个示例不会。
安装
首先,您需要一款 Window 操作系统(最低版本 Windows Vista),然后从下面的网址下载 MSI: http://nodejs.org/download/。 在 windows 设备上安装 node.js 时,确保选中“添加至路径”选项。
创建自己的 node.js 服务器
首先创建一个名为 “server.js” 的新文件。 在该文件中插入下列代码并保存。
var http = require("http"); var server = http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/html"}); response.write("Hello World"); response.end(); }); server.listen(8080); console.log("Server is listening at port 8080");
要启动服务器,请输入下面显示的命令。 如果一切正常,您将会看到服务器正在监听的一条消息。
node server.js
接下来,请使用 web 浏览器来连接到服务器。 启动所选择的浏览器,并打开以下链接中的一个。 在网络术语中,localhost
(IP 地址为 127.0.0.1)指您当前正在使用的设备。 您的浏览器应显示 “Hello World”。
http://localhost:8080
服务器如何工作
require():
Node.js 提供了简单的模块系统。 Node.js 可使用require()
方法加载单独的模块。 尽快必须要明确下载许多模块,但是某些模块可与 node.js 捆绑在一起,例如被称为核心模块的 http。
HTTP 服务器可使用http
模块的createServer()
方法来创建。 createServer()
使用一个回调函数作为参数。 服务器每次收到新的请求时都会执行该回调函数。
该回调函数使用两个参数,request
和 response
。 request
对象包含与客户端请求有关的信息,例如 URL、HTTP 标头等等。 同样,响应
对象用于将数据返回至客户端
调用listen()
会使服务器绑定至一个端口并监听入站连接。此处,我们将端口定义为 8080。
在后面的文章中,我们将更多地介绍 node.js 如何与事件循环相配合、关于节点模块的更多详情,以及如何连接至 mongoDB(一种 NoSQL 数据库)。