0
現在、expressjsで作業しています。express validator
を検証用に、Multiparty
をマルチパート・フォーム用に使用しています。マルチパートを使用したExpressバリデーターは動作しません.Expressjs
私は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(エラー)結果は常に配列は、3つのオブジェクトが含まれている、それも私が名前と説明フィールドに値を与えることのように常にだ、それはまだそれとして返します返します。
私は同様の問題Hereを読みましたが、まだカントは私の問題を解決します。助けて。
質問は、Expressバリデーターとマルチパーティーを一緒に使用して フィールドを検証する方法です。
私は、最初の引数はREQであるform.parse。 form.parse(req、(err、fields、files)=> { )私はreq.validationErrors();を使用することができます } –
私は自分の答えを更新しました – farhadamjady