无法在Node.js中获取查询参数

时间:2019-12-04 17:19:43

标签: node.js

我有这个代理中间件应用程序。它不包括express.js。

Server.js包含以下内容:

const app = require('connect')(),
http = require('http'),

尽管中间件有一组规则,例如:

const httpProxy = require('http-proxy'),
HttpProxyRules = require('http-proxy-rules'),
  const proxyRules = new HttpProxyRules({
    rules: {
  '/api/v1/stuff/([0-9]+)/documents/': 'http://0.0.0.0:3000/$1',
  },
default: 'http://localhost:4443'
});

因此,所有其他微服务都被该代理拦截。 有一个“ app.use”,需要进行一些检查。 在这里,我可以看到请求对象。我有兴趣阅读附加到网址的查询参数。 所以当我有这个时:

http://localhost:8081/api/v1.1/stuff/63/documents/file.pdf?token=mytoken

打印此内容:

console.log('GATEWAY',req.originalUrl);     

将输出以下内容:

http://localhost:8081/api/v1.1/stuff/63/documents/file.pdf?token=mytoken    

但是,如何访问查询参数?由于我不使用express,因此执行“ req.query”会给出未定义的信息。 我已经尝试了许多解决方案:“ querystring”,“ url”等。但是它们给出了非常奇怪的结果,而且获取字段本身并不容易。我永远不会做类似的事情:

req.query

我看了一下connect文档,但是与获取请求查询参数无关。 我应该使用什么?

1 个答案:

答案 0 :(得分:0)

请检查您是否使用了以下内容: 如果没有,请添加它们:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

并尝试获取req.params