我们可以在Node.js中获取查询字符串中的变量吗,就像在PHP中获取$_get中的变量一样?
我知道在Node.js中,我们可以获取请求中的URL。是否有获取查询字符串参数的方法?
我们可以在Node.js中获取查询字符串中的变量吗,就像在PHP中获取$_get中的变量一样?
我知道在Node.js中,我们可以获取请求中的URL。是否有获取查询字符串参数的方法?
当前回答
一个小型Node.js HTTP服务器监听端口9080,解析GET或POST数据并将其作为响应的一部分发送回客户端:
var sys = require('sys'),
url = require('url'),
http = require('http'),
qs = require('querystring');
var server = http.createServer(
function (request, response) {
if (request.method == 'POST') {
var body = '';
request.on('data', function (data) {
body += data;
});
request.on('end',function() {
var POST = qs.parse(body);
//console.log(POST);
response.writeHead( 200 );
response.write( JSON.stringify( POST ) );
response.end();
});
}
else if(request.method == 'GET') {
var url_parts = url.parse(request.url,true);
//console.log(url_parts.query);
response.writeHead( 200 );
response.write( JSON.stringify( url_parts.query ) );
response.end();
}
}
);
server.listen(9080);
将其保存为parse.js,然后在控制台上输入“nodeparse.js”来运行它。
其他回答
像我一样
npm query-string
import queryString from "query-string";
export interface QueryUrl {
limit?: number;
range?: string;
page?: number;
filed?: string;
embody?: string;
q?: string | object;
order?: number;
sort?: string;
}
let parseUri: QueryUrl = queryString.parse(uri.query);
对于Express.js,您需要执行req.params:
app.get('/user/:id', function(req, res) {
res.send('user' + req.params.id);
});
很简单:
示例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
我从其他答案中吸取了教训,并决定在整个网站中使用此代码:
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
既然您在标签中提到了Express.js,这里有一个Express特有的答案:使用req.query。
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('id: ' + req.query.id);
});
app.listen(3000);