node.js - Node : Is it possible that http server on request return the content from a request module?

标签 node.js node-request

我想要做的是,当服务器收到请求时,使用“请求”模块发出请求,并将该“请求”的内容返回给客户端。可能吗?

const http = require("http");
const request = require("request");
const URL = "???";

const server = http.createServer();
server.on('request', (req, res) => {
  // called once for every HTTP request
  out_res = res;
  make_request((err, res, body) => {
    out_res.writeHead(200, {res});
    out_res.write(body);
    out_res.end();
  });
});

function make_request(callback) {
  request(URL, (err, res, body) => {
    callback(err, res, body);
  });
}

module.exports = () => {
  server.listen(8080);
  console.log('server start');
};

我遇到错误:ERR_STREAM_WRITE_AFTER_END,我已经很长时间没有使用node.js了,但是我的 friend 向我询问了一些代码,我只是按照上面的方式重写了。

最佳答案

当然可以

server.on('request', (req, res) => {
  request({uri: URL}).pipe(res);
});

只需将 API 调用的响应通过管道传送到路由器响应对象即可。

以下是我建议您编写服务器代码的方式

var server = http.createServer(function(req,res){
    if(req.url === '/' || req.url === '/index'){
        request({uri: URL}).pipe(res);
     }
    .... //other conditions

});
server.listen(3000,'127.0.0.1')

此外,您可以/应该考虑使用 express ,它真的很酷并且易于使用来定义路线等

关于node.js - Node : Is it possible that http server on request return the content from a request module?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50416470/

相关文章:

node.js - Node 请求中的 curl --upload-file 等价于什么

javascript - 在 express 中访问 Controller 的查询结果

javascript - AJAX POST 查询失败并显示 UNKNOWN_PROTOCO

javascript - 如何在 Firestore JS 中获取现有的文档 key ?

mysql - 如何使用for循环读取所有数据

node.js - 触发 GET 请求并获取 Node Stream

javascript - Javascript/Node 中从不执行用户代码 : is it possible, 的隐藏线程,如果是这样,是否会导致竞争条件的神秘可能性?

Node.js 崩溃/退出,在缩小的 npm 包中没有任何错误消息,如何调试?

javascript - 将节点请求模块与 AWS Lambda 和 API Gateway 结合使用

javascript - Node中并行/异步的多个分页GET API调用