Node.js 创建 Web 服务器
Node.js 框架主要用于创建基于服务器的应用程序。该框架可以轻松地用于创建可以向用户提供内容的 Web 服务器。
已经存在各种模块,例如 http
和 request
模块,来有助于在 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);
代码说明:
- require 函数的基本功能是它读取[JavaScript](/ interactive-javascript-tutorials.html)文件,执行该文件,然后继续返回 exports 对象。所以在我们的例子中,由于我们想要使用 http 模块的功能,我们使用 require 函数从 http 模块获取所需的函数,以便它可以在我们的应用程序中使用。
- 在这行代码中,我们正在创建一个基于简单函数的服务器应用程序。只要向我们的服务器应用程序发出请求,就会调用此函数。
- 收到请求后,我们要发送标头类型为
200
的响应。此数字是在向客户端发送成功响应时在 http 标头中发送的正常响应。 - 在响应本身中,我们发送字符串
Hello World
。 - 然后我们使用
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);
});
代码说明:
- 我们正在使用最后一步安装的
require
模块。该模块具有可用于向网站发出 GET 请求的必要函数。 - 我们正在向 www.google.com 提出 GET 请求,并在收到回复后调用函数。收到响应后,参数(错误,响应和正文)将具有以下值
- Error 错误 - 如果在使用 GET 请求时收到任何错误,将在此处记录。
- Response 响应 - 响应将具有在响应中发回的 http 标头。
- Body 正文 - 正文将包含 Google 发送的回复的全部内容。
- 在这里,我们只是将 body 参数中收到的内容写入 console.log 文件。所以基本上,无论我们通过** www.google.com** 获得什么,都会被写入 console.log。
本节概要
- Node.js 框架可用于使用
http
模块开发 Web 服务器。可以使应用程序侦听特定端口,并在向应用程序发出请求时向客户端发送响应。 request
模块可用于从网站获取信息。该信息将包含从相关网站请求的网页的全部内容。