Node rest API的POST请求突然不起作用

时间:2018-09-26 06:27:46

标签: node.js rest

当我尝试发送POST请求时,我的节点休息API突然停止工作。它一遍又一遍地显示“无法读取未定义的属性0” 。我正在使用Amazon S3进行图像存储。这是我在控制器中创建产品的代码:

  exports.cars_create = (req, res, next) => {

  let imagebody = req.body;

  imagebody.carImage = req.files[0].location;

  imagebody._id = mongoose.Types.ObjectId();

  const car = new Car(imagebody);
  car
      .save()
      .then(result => {
        console.log(result, "Car");
        res.status(200).json(result);

    })
      .catch(err => {
        console.log(err);
        res.status(500).json({
          error: err
        });
      });
  };

这是我的multer中间件:

exports.multerFunction = (direct) => {

aws.config.update({
  signatureVersion: 'v4',
  secretAccessKey:'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  accessKeyId: 'xxxxxxxxxxxxxxxxx',
  region: 'us-east-1'
})

var s3 = new aws.S3()

var upload = multer({
  storage: multerS3({
    s3: s3,
    acl: 'public-read',
    bucket: 'onexxxxxxxxx',
    key: function (req, file, cb) {
      cb(null, Date.now()+file.originalname.replace(/\s+/g, '-'));
    }
  })
})

return upload

}

路由器代码:

router.post("/", uploadMW.multerFunction('/cars').any('carImage'), CarsController.cars_create);

这一切一直正常工作到最后一天,现在我无法确定POST请求出了什么问题。

1 个答案:

答案 0 :(得分:0)

由于未获取图像而发生错误。确保您要发送的图像,该图像的键名正确以及来自前端的数据是表单数据。