inputtypes字段validation失败时如何停止上传图像?
访问Web服务后,如果validation失败,则上传图像。 我需要控制它。 如果validation成功,则应该上传图像。 我已经在由sequelize创build的模型中定义了validation代码。 如果validation成功,如何防止并上传图像?
型号代码是
name : { type : sequelize.STRING, validate : { notEmpty : {msg : 'The Name is required!'} } }, email : { type : sequelize.STRING, validate : { notEmpty : {msg : 'The email field is required!'}, isEmail : {msg : 'The email format is not correct!'} } },
上传图片的控制器代码是
var storage = multer.diskStorage({ destination : function(req,file,cb){ cb(null,'public/uploads/profile/'); }, filename : function(req,file,cb){ if(!file.originalname.match(/\.(png|jpg|jpeg|gif|bmp)$/)){ var err = new Error(); err.code = 'filetype'; return cb(err); }else{ var fileExtention = mime.extension(file.mimetype); var uniqueFileName = uuidv1(); var uniqueImageName = uniqueFileName + '.' + fileExtention; cb(null,uniqueImageName); } } }); var upload = multer({ storage : storage, limits : {fileSize : 10000000} }).single('image'); EmployeeController.prototype.addEmployee = function(req,res){ upload(req,res,function(err){ if(err){ console.log(err); if(err.code === 'LIMIT_FILE_SIZE'){ res.send({msg:'File sizee is too large. Max limit is 10mb!',status:'Failure',response:200,data:[]}); }else if(err.code === 'filetype'){ res.send({msg:'File type is invalid!',status:'Failure',response:200,data:[]}); }else{ res.send({msg:'File was not able to uploaded!',status:'Failure',response:200,data:[]}); } }else{ if(typeof req.file === 'undefined'){ console.log('No Image Found'); var imageName = ''; }else{ console.log('Image Found!'); var imageName = '/public/uploads/profile/'+req.file.filename; } async.waterfall([ function(callback){ var employeeCode = 'EMP1'; var employeeCodeObj = Employee.max('id').then(max => { var maxid = 1; if(max){ maxid = max + 1; } employeeCode = "EMP"+maxid; callback(null,employeeCode); }).catch(err=>{ callback(err,'Failure',500,'Unable to generate employee code!',[]); }); }, function(employeeCode,callback){ var password = randomstring.generate({ length: 8, charset: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%&*' }); callback(null,employeeCode,password); }, function(employeeCode,password,callback){ var params = req.body; var name = Helper.trimInputValue(params.name); var email = Helper.trimInputValue(params.email); var image = imageName; var dob = Helper.trimInputValue(params.dob); Employee.findOrCreate({ where : { email : email, }, defaults : { name : name, email : email, image : image } }).spread(function(employeeData,created){ console.log('Success'); }).catch(sequelize.ValidationError,function(err){ var data = err.errors; var dataErrors = Array(); if(data.length){ for(var key in data){ dataErrors.push({ 'key' : data[key].path, 'msg' : data[key].message }); } } callback('error','Failure',200,dataErrors,[]); }) } ],function(error,status,response,msg,data){ return res.send({msg:msg,status:status,response:response,data:data}); }); } }); };
- 如何使用nodejs中的multer将我的file upload到另一台服务器?
- 使用NodeJS和Multer将图像上传到S3。 如何上传整个文件onFileUploadComplete
- (Express js 4 Multer)在file upload前检查表单域(如果为空)
- Multer模块不会启动
- 实现上传到单独的文件服务器的最佳方法?
- 使用multer,ng-file-upload,angular和node将dynamic表单数据绑定到每个file upload多个文件
- 如何调整图像大小并使用nodejs中的multer上传到s3并使用easy-image npm模块?
- multer数组上传不上传文件,得到一个空数组
- 上传一个文件并传递一个附加的参数与multer