Я хотел загрузить изображения профиля пользователя на сервер, используя пакет npm, multer. Поэтому я настроил мультер, как показано ниже:
var multer = require('multer');
var storage = multer.diskStorage({
//Setting up destination and filename for uploads
destination: function (req, file, cb) {
cb(null, 'uploads/');
},
filename: function (req, file, cb) {
cb(null, Date.now() + file.originalname);
}
});
var upload = multer({
storage: storage,
limits:{
fieldSize: 1024*1024*6,
}
});
У меня также есть модель пользователя, в которой хранятся адрес электронной почты, пароль и картинка:
var makerSchema = new mongoose.Schema({
email:{
type:String,
validate: [validator.isEmail, "Please enter a valid E-mail!" ]
},
password:{
type:String,
required:[true, "Password is a required field"],
minlength: 6,
maxlength:1000
},
imagePath:{
type:String
}
},{
timestamps:true
})
Ниже мой маршрут:
router.post('/maker',upload.single('makerImage'), async (req, res) => {
//Check if image is uploaded(gives no error though)
var imagePath = "";
if (req.file) {
imagePath=req.file.path;
}
//creating body for object
var data = {
email: req.body.email,
password: req.body.password,
imagePath
}
try {
var maker = new Maker(data);
await maker.save();
res.status(200).send();
} catch (error) {
res.send(error);
}
})
Теперь при вводе неправильного адреса электронной почты или пароля, хотя пользователь не создан. Но файл загружается в папку загрузки, несмотря ни на что. Как мне решить эту проблему?