Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Node.js HTTP 模块


内置 HTTP 模块

Node.js 内置了一个名为 HTTP 的模块,它允许 Node.js 通过超文本传输协议 (HTTP) 传输数据。

要包含 HTTP 模块,请使用 require() 方法

var http = require('http');

Node.js 作为 Web 服务器

HTTP 模块可以创建一个 HTTP 服务器,监听服务器端口并向客户端返回响应。

使用 createServer() 方法创建 HTTP 服务器

示例

var http = require('http');

// 创建一个服务器对象
http.createServer(function (req, res) {
  res.write('Hello World!'); // 向客户端写入响应
  res.end(); // 结束响应
}).listen(8080); // 服务器对象监听端口 8080
运行示例 »

传递给 http.createServer() 方法的函数将在有人尝试访问端口 8080 上的计算机时执行。

将上面的代码保存在名为 "demo_http.js" 的文件中,并启动该文件

启动 demo_http.js

C:\Users\您的用户名>node demo_http.js

如果您在您的计算机上遵循了相同的步骤,您将看到与示例相同的结果:https://127.0.0.1:8080



添加 HTTP 头

如果 HTTP 服务器的响应应该显示为 HTML,您应该包含一个具有正确内容类型的 HTTP 头

示例

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);
运行示例 »

res.writeHead() 方法的第一个参数是状态码,200 表示一切正常,第二个参数是一个包含响应头的对象。


读取查询字符串

传递给 http.createServer() 的函数有一个 req 参数,它表示来自客户端的请求,作为一个对象 (http.IncomingMessage 对象)。

此对象有一个名为 "url" 的属性,它保存域名后面的 URL 部分

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write(req.url);
  res.end();
}).listen(8080);

将上面的代码保存在名为 "demo_http_url.js" 的文件中,并启动该文件

启动 demo_http_url.js

C:\Users\您的用户名>node demo_http_url.js

如果您在您的计算机上遵循了相同的步骤,您应该在打开以下两个地址时看到两个不同的结果

https://127.0.0.1:8080/summer

将产生以下结果

/summer
运行示例 »

https://127.0.0.1:8080/winter

将产生以下结果

/winter
运行示例 »

拆分查询字符串

有内置的模块可以轻松地将查询字符串拆分为可读的部分,例如 URL 模块。

示例

将查询字符串拆分为可读的部分

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

将上面的代码保存在名为 "demo_querystring.js" 的文件中,并启动该文件

启动 demo_querystring.js

C:\Users\您的用户名>node demo_querystring.js

地址

https://127.0.0.1:8080/?year=2017&month=July

将产生以下结果

2017 July
运行示例 »

Node.js URL 模块 章节中了解更多关于 URL 模块的信息。


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.