[英]NodeJS proxy with REST and parameters
讓 NodeJS 服務器充當私有服務器的網關。 一個簡單的 REST 端點的工作方式如下。 但是,我正在尋求一種解決方案,該解決方案也將通過 Axios 可能發送的任何參數。
Axios 調用代理服務器示例
return axios
.post(http://proxy.server + "/company/add_company", { address:"123 main", phone:"555-1234" })
代理服務器
const caller = async (response, rest, params) => {
try {
params = JSON.parse(params);
const result = await axios.post('http://10.0.0.0'+ rest, { params } );
res.status(200).json({
success: true,
result: result.data
})
} catch (err) {
res.status(500).json({
success: false,
err
})
}
}
app.all("/", (request, response) => {
let params = request.body // <= not working
let rest = request.url; // <= working example => /users/235
caller(response, rest, params);
});
您需要使用解析器中間件從客戶端接收發布數據,數據將存儲在 request.body 中。 例子:
const express = require('express');
const app = express();
// parse application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: false }))
// parse application/json
app.use(express.json())
這是對我有用的解決方案。
const httpProxy = require('http-proxy');
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
app.use('/', createProxyMiddleware({ target: 'http://10.0.0.0' , changeOrigin: true }));
app.listen(5000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.