65.9K
CodeProject 正在变化。 阅读更多。
Home

Node.js 简介

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (6投票s)

2016年5月17日

CPOL

3分钟阅读

viewsIcon

11502

让我们用简单的术语理解异步编程和同步编程之间的区别,这将使我们了解 node.js 背后的工作原理以及它受欢迎的原因之一。

获取新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,使开发人员可以使用 Intel® Galileo 和 Intel® Edison 开发板创建令人兴奋的新解决方案。访问 Intel® 物联网开发者专区

我们已经听到很多关于 node.js 的信息,它在 Web 开发人员和 IOT 专家中很受欢迎,但它到底是什么,为什么它被广泛用作主要开发语言。让我们通过这篇文章来了解它。

根据 nodejs.org,“node.js 是构建在 Chrome JavaScript 运行时之上的平台”。换句话说,您为服务器编写的代码将在浏览器中以非常相似的方式执行。您可以轻松地运用您在其他地方学到的 JavaScript 技术。它快速、事件驱动且轻量级,但使用 node.js 的最大优势是异步编程。

让我们用简单的术语理解异步编程和同步编程之间的区别,这将使我们了解 node.js 背后的工作原理以及它受欢迎的原因之一。

Synchronous

您正在排队购买电影票。在您前面的每个人都买到票之前,您无法买到票,这同样适用于排在您后面的人。

异步

您在一家餐厅,和许多其他人在一起。您点餐。其他人也可以点餐,他们不必等待您的食物被烹饪并送到您手中才能点餐。在厨房里,餐厅工作人员不断烹饪、上菜和接受订单。人们将在食物烹饪好后立即获得服务。

//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");

输出

将会是

  1. 完成
    start
  2. start
    完成

区别在于,在第一个示例中,程序将在第一行阻塞。下一行(console.log)必须等待。在第二个例子中,console.log 将在查询处理时执行。也就是说,查询将在后台处理,而您的程序正在做其他事情,一旦查询数据准备就绪,您将用它做任何您想做的事情。

所以,简而言之:第一个例子会阻塞,而第二个不会。

安装

首先,您需要一个至少是 Windows Vista 的 Window OS,然后从 https://node.org.cn/download/ 下载 MSI。确保在您的 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”。

https://:8080

服务器如何工作

require(): Node.js 提供了一个简单的模块系统。Node.js 程序可以使用 require() 方法加载单个模块。虽然许多模块必须显式下载,但一些模块,如名为核心模块的 http,与 node.js 捆绑在一起。

HTTP 服务器是使用 http 模块的 createServer() 方法创建的。createServer() 接受一个回调函数作为参数。每次服务器收到新请求时,都会执行此回调函数。

回调函数接受两个参数,requestresponserequest 对象包含有关客户端请求的信息,例如 URL、HTTP 标头等等。同样,response 对象用于将数据返回给客户端。

调用 listen() 会导致服务器绑定到一个端口并侦听传入的连接。这里我们将端口定义为 8080。

在下一篇文章中,我们将更多地讨论 node.js 如何与事件循环一起工作,并详细介绍 node 模块以及如何连接到 NoSQL 数据库 mongoDB。

© . All rights reserved.