Как я могу загрузить изображение в мою пользовательскую модель mon goose, с локального компьютера, используя multer или любым другим способом? - PullRequest
0 голосов
/ 06 апреля 2020

Ниже моя схема

var makerSchema = new mongoose.Schema({
    email:{
        type:String,
        required:[true, "Email is a required field"],
        trim:true,
        lowercase:true,
        unique:true,
        validate: [validator.isEmail, "Please enter a valid E-mail!" ]

    },
    password:{
        type:String,
        required:[true, "Password is a required field"],
        minlength: 6,
        maxlength:1000,
        validate(value){
            if(value.toLowerCase().includes('password')){
                throw Error('The password should not contain the keyword "password"!');
            }
        }
    },
    image:{
        type:Buffer
    }
},{
    timestamps:true
});

var Maker = mongoose.model('Maker', makerSchema);

Я хочу загрузить изображение и сохранить его в виде буфера ( или даже путь будет работать, для этого я изменю тип ключа изображения с Buffer на Строка ) в моей базе данных вместе с другой информацией, которую я отправлю, используя форму. Как добавить в форму кнопку «Загрузить изображение с локального устройства», а затем отправить ее?

Ниже представлен маршрут:

router.post('/maker', async (req, res) => {
    console.log(req.body);
    try {
        var maker = new Maker(req.body);
        await maker.save();
        res.status(200).send();
    } catch (error) {
        if (error.name === "ValidationError") {
            let errors = {};

            Object.keys(error.errors).forEach((key) => {
              errors[key] = error.errors[key].message;
            });

            return res.status(400).send(errors);
          }
          res.status(500).send(error);
    }
})
...