![](/img/trans.png)
[英]When I send image file from PostMan, NodeJS multer has an error (req.file is undefined)
[英]How to validate file type image when send it from postman in nodejs?
我正在创建网络服务以上传带有某些文本和文件类型的图像,而该图像和图像类型应该仅为图像类型,并且是必填项。 我正在使用multer从邮递员上传文件。 我选择主体类型的表单数据,然后获取表单数据。 是否可以在控制器中写入文件移动代码。
路线代码为
var multer = require('multer');
var uploadPic = multer({dest:'public/uploads/profile'});
router.post('/v1/insertUser',uploadPic.any(),userController.saveUser);
控制器代码是,我正在使用sequelize插入数据。
userController.saveUser = function(req,res){
var params = req.body;
req.checkBody('first_name', 'The first name is required!').notEmpty();
req.checkBody('email', 'The email is required!').notEmpty();
req.checkBody('email', 'The email format is incorrect!').isEmail();
req.checkBody('boltt_code', 'The boltt code is required!').notEmpty();
var errors = req.validationErrors();
var userError = Array();
if(errors){
if(errors.length){
for(var key in errors){
userError.push({
'key' : errors[key].param,
'message' : errors[key].msg
});
}
}
return res.send({message: userError,status:'Failure',response:200,data:[]});
}
user.findOrCreate({
where:{
first_name: helper.trimInputValue(params.first_name),
email: helper.trimInputValue(params.email),
boltt_code: helper.trimInputValue(params.boltt_code)
},
defaults:{
first_name: helper.trimInputValue(params.first_name),
middle_name : '',
last_name : '',
email: helper.trimInputValue(params.email),
boltt_code: helper.trimInputValue(params.boltt_code),
image : req.files.filename,
}
})
.spread( function(user, created) {
var msg = '';
if(created){
msg = 'User inserted successfully!';
}else{
msg = 'User already exist!';
}
res.send({
message : msg,
status:'Success',
response:200,
data : user
});
}).catch(Sequelize.ValidationError,function(err){
data = err.errors;
var userError = Array();
if(data.length){
for(var key in data){
userError.push({
'key' : data[key].path,
'message' : data[key].message
});
}
}
res.send({
message : userError,
status : 'Failure',
response:200,
data:[]
});
}).catch((err) => {
res.send({
message : err,
status:'Failure',
response : 500,
data:[]
});
});
};
var multer = require('multer');
var storage = multer.diskStorage({
destination : function(req,file,cb){
cb(null,'public/uploads/profile/');
},
filename : function(req,file,cb){
if(!file.originalname.match(/\.(png)$/)){
var err = new Error();
err.code = 'filetype';
return cb(err);
}else{
cb(null,file.originalname + '_' + Date.now());
}
}
});
var upload = multer({
storage : storage,
limits : {fileSize : 10000000}
}).single('image');
这段代码工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.