首页 > 解决方案 > 在 MERN 中获取图像数据作为缓冲区

问题描述

我有一个mern项目...

我想在我的数据库中插入数据以及我有三个图像..

虽然其他数据已成功插入,但需要三个图像

我试图控制我得到的图像数据......结果是---->

schoolpic: {
    fieldname: 'schoolpic',
    originalname: 'pan back.png',
    encoding: '7bit',
    mimetype: 'image/png',
    buffer: <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 01 f4 00 00 01 37 08 06 00 00 00 5c aa b3 90 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 00 04 ... 187709 more bytes>,
    size: 187759
  },

在我输入所有数据后,我得到了缓冲,即。imagepathimagedestination

请让我知道我哪里出错了

当我尝试过一些以前的问题时,它们完全不同

auth.js(后端)

const storageone = multer.diskStorage({
    destination: function (req, file, cb) {
        let email = req.body.email;
        let pathone = `C:/Users/kumar/Desktop/kridhatutor/server/school/${email}`;
        fs.mkdirsSync(pathone);
        cb(null, pathone);
        // cb(null, 'images');
    },
    filename: function (req, file, cb) {
        cb(null, file.originalname);

    }
});


const fileFilterone = (req, file, cb) => {
    const allowedFile = ['image/jpeg', 'image/jpg', 'image/png'];
    if (allowedFile.includes(file.mimetype)) {
        cb(null, true);
    } else {
        cb(null, false);
    }
}

let uploadone = multer({ storageone, fileFilterone });

router.post('/schoolregister', uploadone.fields([{
    name: "schoolpic", maxCount: 1
}, {
    name: "govtpic", maxCount: 1
},
{
    name: "photo", maxCount: 1
},

]), async (req, res) => {

    const identity = req.body.identity
    const names = req.body.names
    const phone = req.body.phone
    const email = req.body.email
    const city = req.body.city
    const address = req.body.address
    const school = req.body.school
    const instituteaddress = req.body.instituteaddress
    const subject = req.body.subject
    const post = req.body.post
    const message = req.body.message
    const schoolpic = req.files['schoolpic'][0]
    const govtpic = req.files['govtpic'][0]
    const photo = req.files['photo'][0]
   



    const newUserDataone = {
        identity,
        names,
        phone,
        email,
        city,
        address,
        school,
        instituteaddress,
        subject,
        post,
        schoolpic,
        govtpic,
        photo,
        message
    }

    console.log(newUserDataone );

    const newUserone = new SCHOOL(newUserDataone);

    try {
        const userExitone = await SCHOOL.findOne({ email: email })
        if (userExitone) {
            res.status(400).json({ error: "Email already exit" })
            return
            // alert("email already exit")

        }
        else {

            newUserone.save().then(() => res.json('User Added')).catch((err) => {
                console.log(err);
            });
        }
    } catch (err) {
        console.log(err);
    }




})

请帮忙!!

谢谢

标签: node.jsreactjsmongodbexpress

解决方案


推荐阅读