菜单
×
   ❮     
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\Your Name>node demo_http.js

如果您按照相同的步骤在您的计算机上操作,您将看到与示例相同的结果: https://:8080



添加 HTTP 头

如果 HTTP 服务器的响应应该被显示为 HTML,您应该包含一个带有正确 Content-Type 的 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\Your Name>node demo_http_url.js

如果您在计算机上按照相同的步骤操作,当您打开这两个地址时,您应该会看到两个不同的结果

https://:8080/summer

将产生此结果

/summer
运行示例 »

https://: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\Your Name>node demo_querystring.js

地址

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

将产生此结果

2017 July
运行示例 »

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


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持