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 URL 模块


内置 URL 模块

URL 模块将网络地址拆分为可读的部分。

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

var url = require('url');

使用 url.parse() 方法解析地址,它将返回一个 URL 对象,其中包含地址的每个部分作为属性。

示例

将网络地址拆分为可读的部分

var url = require('url');
var adr = 'https://127.0.0.1:8080/default.htm?year=2017&month=february';
var q = url.parse(adr, true);

console.log(q.host); // 返回 'localhost:8080'
console.log(q.pathname); // 返回 '/default.htm'
console.log(q.search); // 返回 '?year=2017&month=february'

var qdata = q.query; // 返回一个对象: { year: 2017, month: 'february' }
console.log(qdata.month); // 返回 'february'
运行示例 »

Node.js 文件服务器

现在我们知道了如何解析查询字符串,在上一章中我们学习了如何使 Node.js 充当文件服务器。让我们将两者结合起来,为客户端提供请求的文件。

创建两个 html 文件,并将它们保存在与你的 node.js 文件相同的文件夹中。

summer.html

<!DOCTYPE html>
<html>
<body>
<h1>夏季</h1>
<p>我喜欢阳光!</p>
</body>
</html>

winter.html

<!DOCTYPE html>
<html>
<body>
<h1>冬季</h1>
<p>我喜欢雪!</p>
</body>
</html>


创建一个 Node.js 文件,打开请求的文件并将内容返回给客户端。如果出现任何错误,则抛出 404 错误

demo_fileserver.js

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

http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;
  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 未找到");
    } 
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080);

请记住初始化文件

初始化 demo_fileserver.js

C:\Users\你的用户名>node demo_fileserver.js

如果你在你的电脑上按照相同的步骤操作,你应该在打开这两个地址时看到两种不同的结果

https://127.0.0.1:8080/summer.html

将产生以下结果

夏季

我喜欢阳光!

https://127.0.0.1:8080/winter.html

将产生以下结果

冬季

我喜欢雪!


×

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.