Node.js 创建 Web 服务器

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

已经存在各种模块,例如 httprequest 模块,来有助于在 web 服务器空间中处理与服务器相关的请求。我们将了解如何使用 Node.js 创建基本 Web 服务器应用程序。

Node 作为 HTTP Web 服务器

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

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

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

代码说明:

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

如果命令执行成功,则在浏览器中运行代码时将显示出 Hello World

  • 你可以清楚地看到,如果我们浏览到端口 7000 上的 localhost 的 URL,你将在页面中看到字符串 Hello World
  • 因为在我们的代码中我们专门提到服务器要侦听端口号 7000,我们能够在浏览到这个 URL 时查看输出。

在 Node.js 中处理 GET 请求

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

npm install request

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

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

request@2.67.0 node_modules\request

在上面的快照中,你可以看到已下载并安装了 request 模块以及版本号 2.67.0。

现在让我们看看可以使用这个 request 命令的代码。

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

代码说明:

  1. 我们正在使用最后一步安装的 require 模块。该模块具有可用于向网站发出 GET 请求的必要函数。
  2. 我们正在向 www.google.com 提出 GET 请求,并在收到回复后调用函数。收到响应后,参数(错误,响应和正文)将具有以下值
    • Error 错误 - 如果在使用 GET 请求时收到任何错误,将在此处记录。
    • Response 响应 - 响应将具有在响应中发回的 http 标头。
    • Body 正文 - 正文将包含 Google 发送的回复的全部内容。
  3. 在这里,我们只是将 body 参数中收到的内容写入 console.log 文件。所以基本上,无论我们通过** www.google.com** 获得什么,都会被写入 console.log。

本节概要

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