首页 > 解决方案 > 如何存储和返回来自 HTTP 响应的数据?

问题描述

我正在使用请求模块向 API 发出请求,该 API 向我发送一个 Base64 编码的响应,该响应是一个文件。

    app.get("/report", async(request, response) => {
    const newRequest = new mdl.Request
    const newDatasources = new  mdl.Datasources
    const newVariables = new mdl.VariablesType
    const VariablesArray = []
    const myArray = []

    newRequest.Uri = "http://127.0.0.1:8080/listing.docx"
 newRequest.Async = false
    newRequest.OutputFormat = "html"
    newVariables.Name = "Var1"
    newVariables.Type = "text"
    newVariables.Value = "Hello World!"
    VariablesArray.push(newVariables)
    newDatasources.Name = "JSON"
    newDatasources.Type = "JSON"
    newDatasources.Data = "ewogICAgImxpc3RQcmljZSI6ICIkODc5LDAwMCIsCiAAgICAgInB1cmNoQ29udHJhY3REYXRlIjogIiIsCiAgICAgICAgImVuZGluZ0RhdGUiOiAiIgogICAgfQp9"
    newDatasources.Variables = VariablesArray
    myArray.push(newDatasources)

    newRequest.Datasources = myArray

    const req_data = JSON.stringify(newRequest)

    const options = {
        hostname: 'report.sample.com',
        port: 80,
        path: '/v1/reports',
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Content-Length': req_data.length
        }
      }
      const req = http.request(options, (error, resp, body) => {
        console.log(`statusCode: ${res.statusCode}`)

        resp.on('data', (d) => {
          process.stdout.write(d)
        })
      })

      resp.on('error', (error) => {
        console.error(error)
      })

      req.write(req_data)

      req.end()

      response.send("done")
    });

这会在我的终端上打印出接收到的数据,但是我怎样才能将它存储在一个变量中并将其作为对请求的响应返回呢?只是我正在做的一些背景。我正在构建一个报告请求,然后通过该请求将其发送到 api,该请求以编码字符串的形式返回我的数据

标签: javascriptnode.js

解决方案


很难准确地说出您使用什么来运行它。

利用

res.status(200).send({success: true, data: data}) 

如果你使用快递。


推荐阅读