Javascript 如何从HTTP响应中存储和返回数据?
我正在使用请求模块向一个API发出请求,该API向我发送一个Base64编码的响应,该响应是一个文件Javascript 如何从HTTP响应中存储和返回数据?,javascript,node.js,Javascript,Node.js,我正在使用请求模块向一个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
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,该请求以编码字符串的形式返回数据很难准确地告诉我您正在使用什么来运行它 使用
如果您使用的是express。我会更新代码以包含整个路线。数据不可访问您不必包含数据变量,这只是我尝试的一个示例。如果这段代码发送响应,那就是最重要的。响应是传递到.send()的对象。抱歉,这不是问题所在。http请求以流的形式返回响应,因此我必须将返回的数据放入一个变量中才能返回它。
res.status(200).send({success: true, data: data})