Express req.body属性为空



我在客户端和服务器端的node js中都有一个简单的代码。客户端通过axios发送,服务器通过express发送。

相关客户代码:

let url = root_path+'detect/?model_type='+algorithm
let object = {object: [train_object, anomaly_object]}
return axios.post(url, object).then((res) => console.log(res.data));

完整的服务器代码:

const express = require('express');
const bodyParser = require('body-parser');
const model = require('../model/SimpleAnomalyDetector')
const serverPATH = '/api/detect'
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use((_, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', '*');
res.setHeader('Access-Control-Allow-Headers', '*');
next();
});
app.post(serverPATH, (req, res)=> {
let object = req.body.object;
let algorithm = req.query.model_type
console.log(object[0]);
console.log(object[1]);
console.log(algorithm);
var got = model.get_anomalies(object[0], object[1], algorithm)
console.log()
//res.send(got);
})
app.listen(9876);

客户端对象由许多内部对象组成。当我打印代码时,集合结构很好,但所有字段都是空的。(此外,如果我尝试在各个字段上迭代,它也不起作用,所以我知道它是空的(。

知道吗?在我看来,我添加了所有

您必须使调用函数成为客户端的异步函数。

例如:

async function callAxios() {
let url = root_path+'detect/?model_type='+algorithm
let object = {object: [train_object, anomaly_object]}
const resp = await axios.post(url, object);
return resp;
}

最新更新