TypeError:无法读取属性equipmentImage为null

时间:2020-08-26 15:39:25

标签: javascript node.js express postman

好的,所以我尝试将邮递员的设备图像作为表单数据发布,但出现此奇怪错误,即键入错误;无法读取物业设备图像。我正在使用express-fileupload上传图片。谁能帮我,已经两天了。我不知道。

app.post('/equipmentsAPI/addEquipments', (req, res) => {
   // console.log(req.files.equipmentImage);

        const file = req.files.equipmentImage;  ------*This line*
        const fileName = file.name;

        file.mv("./equipments/" + fileName);

        if (!(req.body.equipmentName)) {
            res.send({ 'message': 'One of the field is missing or misspelled some field.' });
        } else {

            const newEquipment = new equipments({
                equipmentName: req.body.eq,
                equipmentImage: fileName
            });
            newEquipment.save((err) => {
                if (!err) {
                    res.send({ 'message': 'Succesfully added new equipment' });
                } else {
                    res.send({ 'message': err });
                }
            });
        }

});

3 个答案:

答案 0 :(得分:0)

因此,如果req是FormData-可以通过索引或方法访问(请参见:https://developer.mozilla.org/en-US/docs/Web/API/FormData)...它似乎没有附加名为文件的对象。尝试req [0]和req [1]分别访问equimentImage和图像文件。

答案 1 :(得分:0)

这只是意味着您需要在邮递员中创建一个equipmentImage列,并使用文件的数据类型,并将主体类型设置为form-data

enter image description here

答案 2 :(得分:0)

非常感谢,我刚刚解决了这个问题。问题是我为每个js文件创建了一个新的中间件 例如:

const fileUpload = require('express-fileupload');
app.use(fileUpload());

一旦我删除了所有中间件并为所有文件制作了通用中间件,它便开始工作。??????