Javascript 如何从node js中的端点获取querystring参数
我正在创建具有多个端点的简单节点服务器,并希望将查询字符串传递到端点。虽然我能够成功地创建端点,但无法在端点中获取querystring值。以下是我正在使用的示例代码:-Javascript 如何从node js中的端点获取querystring参数,javascript,node.js,Javascript,Node.js,我正在创建具有多个端点的简单节点服务器,并希望将查询字符串传递到端点。虽然我能够成功地创建端点,但无法在端点中获取querystring值。以下是我正在使用的示例代码:- const http = require('http'); var url = require('url'); var fs = require("fs"); const hostname = '127.0.0.1'; const port = 3000; http.createServer(function (req, re
const http = require('http');
var url = require('url');
var fs = require("fs");
const hostname = '127.0.0.1';
const port = 3000;
http.createServer(function (req, res) {
var data = fs.readFileSync('HolidaysList.json');
let holidays = JSON.parse(data);
res.statusCode = 200;
var url_parts = url.parse(req.url, true);
let month = url_parts.query.month;
console.log(month);
res.setHeader('Content-Type', 'text/plain');
if (req.url === '/') {
res.end('Holiday List.\n');
} else if (req.url === '/public') {
res.end('Public Holiday List.\n');
console.log(holidays.public);
}
else if (req.url === '/flexible') {
res.end('Flexible Holiday List.\n');
console.log(holidays.flexible);
}
}).listen(port, hostname);
console.log('Server running at http://' + hostname + ':' + port + '/');
我想用/public?month=May query string来处理请求。您可以使用节点JS提供的模块来解析和检索查询参数。querystring有一个名为parse的函数,该函数将查询转换为一个对象,您可以根据需要使用该对象
const http = require('http');
var url = require('url');
var fs = require("fs");
const querystring = require('querystring'); // Require the querystring module
const hostname = '127.0.0.1';
const port = 3000;
http.createServer(function (req, res) {
var data = fs.readFileSync('HolidaysList.json');
let holidays = JSON.parse(data);
res.statusCode = 200;
var url_parts = url.parse(req.url, true);
let month = url_parts.query.month;
console.log(month);
res.setHeader('Content-Type', 'text/plain');
if (req.url === '/') {
// Use querystring.parse() to retrieve query string params
const queryParams = queryString.parse(req.query)
console.log(queryParams)
res.end('Holiday List.\n');
} else if (req.url === '/public') {
res.end('Public Holiday List.\n');
console.log(holidays.public);
}
else if (req.url === '/flexible') {
res.end('Flexible Holiday List.\n');
console.log(holidays.flexible);
}
}).listen(port, hostname);
console.log('Server running at http://' + hostname + ':' + port + '/');
由于您没有使用任何内置queryString解析的http框架(如Express),因此您必须自己从URL解析queryString。node.js中内置了多个iLibrary来帮助您,例如
url
和querystring
模块。