在 Node.js 中创建 HTTP Web 服务器:附带代码示例的教程

Node.js 框架主要用于创建基于服务器的应用程序。该框架易于用于创建可以向用户提供内容的 Web 服务器。

有各种模块,例如“http”和“request”模块,它们有助于在 Web 服务器空间中处理与服务器相关的请求。我们将看看如何使用 Node js 创建一个基本的 Web 服务器应用程序。

Node 作为 HTTP Web 服务器

让我们看一个示例,说明如何创建和运行我们的第一个 Node js 应用程序。

我们的应用程序将创建一个简单的服务器模块,该模块将监听端口号 7000。如果通过浏览器在此端口号上发出请求,则服务器应用程序将向客户端发送“Hello World”响应。

Node as a Web Server Using HTTP

代码解释

  1. require 函数的基本功能是读取一个 JavaScript 文件,执行该文件,然后返回 exports 对象。所以,在我们的例子中,由于我们想使用 http 模块的功能,我们使用 require 函数从 http 模块获取所需的函数,以便它可以在我们的应用程序中使用。
  2. 在这行代码中,我们创建了一个基于简单函数的服务器应用程序。每当向我们的服务器应用程序发出请求时,都会调用此函数。
  3. 收到请求时,我们指示发送一个响应,其标头类型为“200”。当向客户端发送成功响应时,此数字是 http 标头中发送的正常响应。
  4. 在响应本身中,我们发送字符串“Hello World”。
  5. 然后,我们使用 server.listen 函数使我们的服务器应用程序监听端口号 7000 上的客户端请求。您可以在此处指定任何可用端口。

如果命令执行成功,当您在浏览器中运行代码时,将显示以下输出。

输出

Node as a Web Server Using HTTP

从输出中,

  • 如果您浏览到端口 7000 上的 localhost URL,您会在页面上看到显示的“Hello World”字符串。
  • 因为我们在代码中明确提到了服务器要监听端口号 7000,所以我们在浏览到此 URL 时能够看到输出。

此处附上代码供您参考

var http=require('http')
var server=http.createServer((function(request,response)
{
	response.writeHead(200,
	{"Content-Type" : "text/plain"});
	response.end("Hello World\n");
}));
server.listen(7000);

处理 Node.js 中的 GET 请求

在 Node.js 中,从另一个站点获取数据的 GET 请求相对非常简单。要在节点中发出 Get 请求,我们首先需要安装 request 模块。这可以通过在命令行中执行以下行来完成

npm install request

上面的命令请求 Node 包管理器下载所需的 request 模块并相应地安装它们。

当您的 npm 模块成功安装后,命令行将显示已安装的模块名称和版本:<name>@<version>。

Handling GET Requests

在上图快照中,您可以看到“request”模块以及版本号 2.67.0 已被下载并安装。

现在让我们看看可以使用此“request”命令的代码。

Handling GET Requests

代码解释

  1. 我们正在使用上一步中安装的“request”模块。该模块具有可用于向网站发出 GET 请求的必要函数。
  2. 我们正在向 www.google.com 发出 GET 请求,并在收到响应时调用一个函数。收到响应时,参数(error、response 和 body)将具有以下值
    1. 错误 – 如果在使用 GET 请求时收到任何错误,它将被记录在此处。
    2. 响应 – 响应将包含在响应中发送的 http 标头。
    3. 正文 – 正文将包含 Google 发送的响应的全部内容。
  3. 在这里,我们只是将 body 参数中收到的内容写入 console.log 文件。所以基本上,我们通过访问 www.google.com 获得的所有内容都将被写入 console.log。

此处附上代码供您参考

var request = require("request");
	request("http://www.google.com",function(error,response,body)
	{
		console.log(body);
	});

摘要

  • Node.js 框架可用于使用“http”模块开发 Web 服务器。可以使应用程序监听特定端口,并在向应用程序发出请求时向客户端发送响应。
  • “request”模块可用于从网站获取信息。这些信息将包含从相关网站请求的网页的全部内容。