如何使用 Node JS Http/Https 模块获取 URL 参数
How to get URL Params with Node JS Http/Https module
我正在编写 Web 应用程序的后端程序。我正在执行 api 并且我需要能够在 URL 中发送数据。例如:
www.example.com/posts/123456789
现在我只有:
www.example.com/posts/?q=123456789
我想知道我是否可以做一些类似于 express 模块用冒号声明参数的事情。但我想用节点 http 模块来做,因为我已经用它编写了所有路由,移动到 express 并且必须记住它的功能将是一个巨大的痛苦。
如果这不可能,请告诉我,我将不得不坚持使用查询字符串。
如果我正确理解你的问题,你会做这样的事情。
我会给你完整的服务器代码,传过去运行 it.To你自己看看
例如,这段代码的作用是 -> localhost:8080/month?9 当您将其传递到浏览器时,控制台将打印出 9
const http = require('http');
const url = require('url');
http.createServer(function (req, res) {
const queryObject = url.parse(req.url,true).query; <---- Here is where you "catch" the URI parameters
console.log(queryObject); <-- here you display them
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('Feel free to add query parameters to the end of the url');
}).listen(8080);
好像是 HTTP module docs do not specify a way to do this, other than by using search params.
然而,在你的情况下,我认为最好的行动方案(如果迁移到像 express 这样的框架不是一个选项)是手动解构 URL 使用类似的东西:
const urlSegments = request.url.split('/')
并采取第 n 段(匹配您指定的路线)。
从长远来看,这是一个糟糕的解决方案,因为它很难维护,但如果有必要,它可以完成工作。
我正在编写 Web 应用程序的后端程序。我正在执行 api 并且我需要能够在 URL 中发送数据。例如:
www.example.com/posts/123456789
现在我只有:
www.example.com/posts/?q=123456789
我想知道我是否可以做一些类似于 express 模块用冒号声明参数的事情。但我想用节点 http 模块来做,因为我已经用它编写了所有路由,移动到 express 并且必须记住它的功能将是一个巨大的痛苦。
如果这不可能,请告诉我,我将不得不坚持使用查询字符串。
如果我正确理解你的问题,你会做这样的事情。
我会给你完整的服务器代码,传过去运行 it.To你自己看看
例如,这段代码的作用是 -> localhost:8080/month?9 当您将其传递到浏览器时,控制台将打印出 9
const http = require('http');
const url = require('url');
http.createServer(function (req, res) {
const queryObject = url.parse(req.url,true).query; <---- Here is where you "catch" the URI parameters
console.log(queryObject); <-- here you display them
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('Feel free to add query parameters to the end of the url');
}).listen(8080);
好像是 HTTP module docs do not specify a way to do this, other than by using search params.
然而,在你的情况下,我认为最好的行动方案(如果迁移到像 express 这样的框架不是一个选项)是手动解构 URL 使用类似的东西:
const urlSegments = request.url.split('/')
并采取第 n 段(匹配您指定的路线)。
从长远来看,这是一个糟糕的解决方案,因为它很难维护,但如果有必要,它可以完成工作。