我有这个代理中间件应用程序。它不包括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文档,但是与获取请求查询参数无关。 我应该使用什么?
答案 0 :(得分:0)
请检查您是否使用了以下内容: 如果没有,请添加它们:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
并尝试获取req.params