我是Node的新手,使用http-proxy-middleware时无法传递请求参数。
它抛出404错误
这是快递听众:
app.put("/api/markets/:id",()=>{..code..});
这是axios PUT请求:
axios
.put("/api/markets/" + idToPass, {..Object..})
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
这是proxyMiddleware:
const proxy = require("http-proxy-middleware");
module.exports = function(app) {
app.use(proxy("/api/*", { target: "http://localhost:3050" }));
};
我的客户端在localhost:3000上运行(反应应用程序) 我的服务器在localhost:3050上
打开浏览器的“网络”标签以检查请求时,我看到正在打
localhost:3000/api/markets/idContent
不是
localhost:3050/api/markets/idContent
应该是这样。
当我手动将其发送到
时,它可以工作localhost:3050/api/markets/idContent
任何想法,我该如何解决?
提前谢谢
答案 0 :(得分:1)
似乎问题出在代理配置上。截至目前,它仅与网址匹配一级。
改为尝试/api
或/api/**
const proxy = require("http-proxy-middleware");
module.exports = function(app) {
app.use(proxy("/api", { target: "http://localhost:3050" }));
};
答案 1 :(得分:1)
您未指定基本URL。创建axios实例并指定正确的基本URL:
const instance = axios.create({
baseURL: 'http://localhost:3050'
});
然后使用该实例发出每个axios请求:
instance
.put("/api/markets/" + idToPass, {..Object..})
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});