0

我正在使用 Multer 并将数据作为 multipart/form-data 发送。即使图像字段为空,我也想保存新的食物对象,但是当我使用 POSTMAN 发送没有图像 req.files.image.name 的数据时,它会向我发送一个错误:

TypeError:无法读取未定义的属性“名称”

router.post('/food/add', function (req, res, next) {
    var food = new Food({
        name: req.body.name,
        image: req.files.image.name,
        category: req.body.category,
    });

    food.save(function(err, food){
        if (err){
            return next(err);
        }
        res.json({food: food, message: '¡Wohoo! Food added.'});
    });
});

如何解决此错误并使用空图像字段保存​​对象?

4

1 回答 1

2

只需使用 if 语句。

var food = new Food({
    name: req.body.name,
    category: req.body.category,
});
if (typeof req.files.image !== "undefined") {
    food.image = req.files.image.name;
}

或者

var food = new Food({
    name: req.body.name,
    image: (typeof req.files.image !== "undefined") ? req.files.image.name : '',
    category: req.body.category,
});
于 2015-01-07T15:15:45.027 回答