有一个json对象,我使用访存API进行了API调用,并且得到了预期结果的响应。如何将结果发送到客户端,以便能够在界面中显示它们?我使用了Node.js的express模块。
const fetch = require("node-fetch");
const express = require("express");
var bodyParser = require('body-parser');
const app = express();
app.post('/', (req, res) => {
res.sendStatus(200);
jsonBody = JSON.parse(fs.readFileSync("./resources/jsonBody.json", {
encoding: 'utf8'
}));
function results() {
fetch(url, {
method: 'POST',
body: JSON.stringify(jsonBody),
headers: {
"Authorization": "Bearer " + predictionKey,
"Content-Type": "application/json"
},
}).then(response => response.json()).then(response =>
console.log(response.Results.output1.value.Values));
}
results()
})
});
客户端发布功能:
function postMessage(message){
$.post("http://localhost:8000",message);
}
这是服务器上api调用的响应
[ [ '1008', '0', '1' ],
[ '1079', '1', '3' ],
[ '1022', '2', '3' ] ]
我想在界面上(客户端上)显示这些值
答案 0 :(得分:0)
您在提取中使用的变量url没有在任何地方定义,因此我必须假定您在要调用的API的其他位置有一个全局变量。
如果是这样,则说明您不按顺序执行此操作-发送一个空的200 OK,然后获取jsonBody(这是另一个全局变量,可能是无意的),但是从不使用这些结果。
尝试像这样重新排列:
const fetch = require("node-fetch");
const express = require("express");
var bodyParser = require('body-parser');
const app = express();
app.post('/', (req, res) => {
res.sendStatus(200);
var jsonBody = JSON.parse(fs.readFileSync("./resources/jsonBody.json", {
encoding: 'utf8'
}));
fetch(url, {
method: 'POST',
body: JSON.stringify(jsonBody),
headers: {
"Authorization": "Bearer " + predictionKey,
"Content-Type": "application/json"
},
}).then(response => response.json()).then(response => {
console.log(response.Results.output1.value.Values);
res.json(response.Results.output1.value.Values); // or whatever you want from response
});
});