【问题标题】:Express req.body properties are emptyExpress req.body 属性为空
【发布时间】:2021-05-09 20:44:30
【问题描述】:

我在客户端和服务器端都有一个简单的节点 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);

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

有什么想法吗?在我看来,我添加了所有内容

【问题讨论】:

    标签: javascript node.js express http


    【解决方案1】:

    您必须将调用函数设为客户端的异步函数。

    例如:

    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;
    }
    

    【讨论】:

    • 我已经添加了它和异步功能,我想现在它更正确了,谢谢,但仍然遇到同样的问题:(
    猜你喜欢
    • 2019-02-08
    • 2016-02-15
    • 2020-12-17
    • 2020-01-08
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多