我正在尝试捕获当前的GET URL并在node.js代码中查询params。我认为windows.loication在node.js中不起作用,因为它仅用于基于客户端的执行。我尝试过多种方法,但无法捕获GET请求。这就是我所尝试的一切。
var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
var request = require('request');
var query = url.parse(request.url,true).query;
getFormattedUrl(req);
function getFormattedUrl(req) {
console.log("req.url: " + req.url);
return url.format({
protocol: req.protocol,
host: req.get('host')
});
}
所有这些都失败了,给出了错误:
2016-12-17T03:32:36.164600+00:00 app[web.1]: ReferenceError: request is not defined
2016-12-17T03:43:46.569603+00:00 app[web.1]: ReferenceError: request is not defined
2016-12-17T03:45:14.509168+00:00 app[web.1]: TypeError: Parameter 'url' must be a string, not undefined
有人可以建议如何在node.js中创建GET参数。
答案 0 :(得分:0)
如果您尝试将从NODE JS服务器发出的请求捕获到另一个http / https端点以进行调试或查看,这可能会有所帮助
Y
其中options2是节点js服务器尝试访问的定义的URL
当您控制日志选项2(我使用的变量名称,您可以调用它)时,它将为您提供有关服务器正在进行的HTTPS / HTTP调用的所有信息。
答案 1 :(得分:0)
要解决上述问题,请先使用命令行安装request
模块,然后再使用它:
npm install request
有趣的是,要实现您的需求,您根本不需要使用请求模块。只需像上面那样使用url
模块,传递请求对象(不是模块,而是实际的调用请求),并使用url.format
const url = require('url')
function getFormattedUrl(req) { return url.format(req.url) }
答案 2 :(得分:0)
如果您使用express 4.x
,则需要req.query
答案 3 :(得分:0)
示例Express JS 4代码
var express = require('express')
var app = express()
app.get('/', function (req, res) {
res.send('Someting')
console.log(req.query);
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
这将在端口3000上启动localhost服务器
如果你做localhost:3000?q = test你会看到
{q: test}
控制台/日志中的。