我们可以在Node.js中获取查询字符串中的变量吗,就像在PHP中获取$_get中的变量一样?
我知道在Node.js中,我们可以获取请求中的URL。是否有获取查询字符串参数的方法?
我们可以在Node.js中获取查询字符串中的变量吗,就像在PHP中获取$_get中的变量一样?
我知道在Node.js中,我们可以获取请求中的URL。是否有获取查询字符串参数的方法?
当前回答
我使用的是MEANJS 0.6.0express@4.16,很好
客户:
控制器:
var input = { keyword: vm.keyword };
ProductAPi.getOrder(input)
服务:
this.getOrder = function (input) {return $http.get('/api/order', { params: input });};
服务器
路线
app.route('/api/order').get(products.order);
控制器
exports.order = function (req, res) {
var keyword = req.query.keyword
...
其他回答
在Express中,这已经为您完成了,您可以简单地使用req.query:
var id = req.query.id; // $_GET["id"]
否则,在NodeJS中,您可以访问req.url和内置的url模块来url.parse它:
var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
我从其他答案中吸取了教训,并决定在整个网站中使用此代码:
var query = require('url').parse(req.url,true).query;
那你可以打电话
var id = query.id;
var option = query.option;
get的URL应该在哪里
/path/filename?id=123&option=456
如果您需要向IP和域发送GET请求(其他答案没有提到您可以指定端口变量),您可以使用此函数:
function getCode(host, port, path, queryString) {
console.log("(" + host + ":" + port + path + ")" + "Running httpHelper.getCode()")
// Construct url and query string
const requestUrl = url.parse(url.format({
protocol: 'http',
hostname: host,
pathname: path,
port: port,
query: queryString
}));
console.log("(" + host + path + ")" + "Sending GET request")
// Send request
console.log(url.format(requestUrl))
http.get(url.format(requestUrl), (resp) => {
let data = '';
// A chunk of data has been received.
resp.on('data', (chunk) => {
console.log("GET chunk: " + chunk);
data += chunk;
});
// The whole response has been received. Print out the result.
resp.on('end', () => {
console.log("GET end of response: " + data);
});
}).on("error", (err) => {
console.log("GET Error: " + err);
});
}
不要错过文件顶部的所需模块:
http = require("http");
url = require('url')
还要记住,您可以使用https模块通过安全域和ssl进行通信。因此这两条线将改变:
https = require("https");
...
https.get(url.format(requestUrl), (resp) => { ......
我使用的是MEANJS 0.6.0express@4.16,很好
客户:
控制器:
var input = { keyword: vm.keyword };
ProductAPi.getOrder(input)
服务:
this.getOrder = function (input) {return $http.get('/api/order', { params: input });};
服务器
路线
app.route('/api/order').get(products.order);
控制器
exports.order = function (req, res) {
var keyword = req.query.keyword
...
很简单:
示例URL:
http://stackoverflow.com:3000/activate_accountid=3&activatekey=$2a$08$jvGevXUOvYxKsiBt.PpMs.zgzD4C/wwTsvjzfUrqLrgS3zXJVfVRK
您可以使用以下命令打印查询字符串的所有值:
console.log("All query strings: " + JSON.stringify(req.query));
输出
所有查询字符串:{“id”:“3”,“activatekey”:“$2a$08$jvGevXUOvYxKsiBt.PpMs.zgzD4C/wwTsvjzfUrqLrgS3zXJVfVRK“}
要打印特定内容:
console.log("activatekey: " + req.query.activatekey);
输出
激活:$2a$08$jvGevXUOvYxKsiBt.PpMs.zgzD4C/wwTsvjzfUrqLrgS3zXJVfVRK