Javascript 是否将post请求从express js服务器发送到另一个express js服务器?

Javascript 是否将post请求从express js服务器发送到另一个express js服务器?,javascript,node.js,express,Javascript,Node.js,Express,我有一个运行在3000和4000端口上的express js服务器 并希望将post请求从服务器3000发送到服务器4000 我试过这个: var post_options = { url: "http://172.28.49.9:4000/quizResponse", timeout: 20000, method:"POST", encoding: "application/json; charset=utf-8", body : {data: formdata} };

我有一个运行在3000和4000端口上的express js服务器 并希望将post请求从服务器3000发送到服务器4000

我试过这个:

var post_options = {
  url: "http://172.28.49.9:4000/quizResponse",
  timeout: 20000,
  method:"POST",
  encoding: "application/json; charset=utf-8",
  body :  {data: formdata}
};
request(post_options,
function optionalCallback(err, httpResponse, body) {
    if (err) {
        console.log(err);
    }else
        console.log(body);
});
但是得到这个错误:


TypeError:ClientRequest.OutgoingMessage.write(_http_outgoing.js:456:11)at Request.write(D:\restfullApi\inspectoreapi\node\u modules\Request\Request.js)的第一个参数必须是字符串或缓冲区‌​:1514:27)结尾(D:\restfullApi\examineerapi\node\u modules\request\request.js‌​:(552:18)马上。(D:\restfullApi\testeerapi\node\u modules\request\request.js‌​:581:7)在运行回调(timers.js:637:20)在tryonitimmediate(timers.js:610:5)在processImmediate[as_immediateCallback](timers.js:582:5)


这不是我想的那样有效。请帮助我解决这个问题。

有一个名为http的本机节点模块,您可以在您的案例中使用它。它看起来是这样的:

const http = require('http');

var postData = JSON.stringify({user: 'sample1'});

const options = {
    hostname: '172.28.49.9',
    port: 4000,
    path: '/quizResponse',
    method: 'POST',
    headers: {
        'content-type': 'application/json',
        'accept': 'application/json'
    }
};

const req = http.request(options, (res) => {
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
        console.log(`BODY: ${chunk}`);
    });
    res.on('end', () => {
        console.log('No more data in response.');
    });
});

req.on('error', (e) => {
    console.error(`problem with request: ${e.message}`);
});

// write data to request body
req.write(postData);
req.end();

我建议您阅读文档:

请在执行上述代码时添加您得到的错误?TypeError:第一个参数必须是ClientRequest.OutgoingMessage.write(_http_outing.js:456:11)at Request.write(D:\restfullApi\examicerapi\node_modules\Request\Request.js:1514:27)结尾(D:\restfullApi\testeerapi\node\u modules\request\request.js:552:18)在立即。(D:\restfullApi\testeerapi\node\u modules\request\request.js:581:7)在runCallback(timers.js:637:20)在tryOnImmediate(timers.js:610:5)在processimmediatecallback[as\u immediateCallback](timers.js:582:5)可能重复的for body,要成为json,您必须在
请求包中设置
json:true
。请尝试在选项中添加
json:true
。Axios也可以做到这一点: