繁体   English   中英

将正文传递到内部http发布请求

[英]pass body to internal http post request

我在本地主机中有2个发布终结点,我希望第一个终结点可以通过发布请求获取参数,并将其传递给后者,而后者会将响应发送回第一个:

    const axios = require('axios');
const express = require('express')
const app = express()
var bodyParser = require('body-parser');

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

app.use(bodyParser.json());

app.post('/b', async (req, res, next) => {
    try {
        res.send(req.body);
    } catch (error) {
        console.log(error)
    }
})

app.post('/a', async (req, res, next) => {
    try {
        const text = await axios.post('/b', req.body);
        res.send(text);
    } catch (error) {
        console.log(error)
    }
})
app.listen(3000)

总是错误是:

{ Error: connect ECONNREFUSED 127.0.0.1:80
at Object.exports._errnoException (util.js:1033:11)
at exports._exceptionWithHostPort (util.js:1056:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1099:14)

代码:“ ECONNREFUSED”,错误号:“ ECONNREFUSED”,系统调用:“连接”,
地址:“ 127.0.0.1”,端口:80,配置:{适配器:[功能:httpAdapter],transformRequest:{'0':[功能:transformRequest]},transformResponse:{'0':[Function:transformResponse]} ,超时:0,xsrfCookieName:“ XSRF-TOKEN”,xsrfHeaderName:“ X-XSRF-TOKEN”,maxContentLength:-1,validateStatus:[Function:validateStatus],标头:{接受:'application / json,text / plain, / ','Content-Type':'application / json; charset = utf-8','User-Agent':'axios / 0.18.0','Content-Length':9},方法:'post', url:'/ b',数据:'{“ b”:“ c”}'}...。

引发异常的原因是axios请求的端口与服务器正在侦听的端口不同。 您正在侦听端口3000( app.listen(3000) ),而axios发出请求的默认端口是端口80。这就是为什么错误是Error: connect ECONNREFUSED 127.0.0.1:80

您需要做的是确保服务器正在侦听的端口与axios请求的端口相同。 例如,将发出发布请求的代码行更改为

const text = await axios.post('http://localhost:3000/b', req.body);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM