带有Multiparty的Express验证器不起作用Expressjs

时间:2017-01-13 11:33:11

标签: javascript node.js express

目前正在使用expressjs并使用express validator进行验证,使用Multiparty处理多部分表单。

情况是,当我想断言我的文本表格时express-validator不能正常工作,因为我也使用multiparty

这是我的代码。

const express = require('express');
const app = express();
const expressValidator = require('express-validator');
const multiparty = require('multiparty');

app.use(expressValidator({
  errorFormatter: function(param, msg, value) {
      var namespace = param.split('.')
      , root    = namespace.shift()
      , formParam = root;

    while(namespace.length) {
      formParam += '[' + namespace.shift() + ']';
    }
    return {
      param : formParam,
      msg   : msg,
      value : value
    };
  }
}));



app.post('/store', (req, res, next)=>{
  const form = new multiparty.Form();
  
  form.parse(req, (err, fields, files)=>{
    req.assert('name','Store name is required.').notEmpty();
    req.assert('description', 'Store Description is required.').notEmpty();
    req.assert('category', 'Store Category is required.').notEmpty();
    
    const errors = req.validationErrors();
    if(errors){
      console.log(errors);
    }else{
      
     // upload the file and save the data;
    }
  });
  
});

  

console.log(errors)结果总是返回一个包含3个对象的数组,总是这样,即使我在名称和描述字段中给出值,它仍然会返回它。

enter image description here

我已阅读类似问题Here,但仍无法解决我的问题。帮助我。

  

问题是如何将Express验证器和Multiparty一起使用   验证我的字段??

1 个答案:

答案 0 :(得分:0)

您是否使用req.getValidationResult().查看此案例中的验证结果,我在docs中看到:

req.getValidationResult().then(function(result){
})