1

私は登録フォームを持っていて、 node-validatorでフォームの値を検証する関数を登録するために値を投稿しています。

しかし、node-validator を試してみると、 TypeError: Object # has no method 'onValidationError'としてエラーが発生し続けます。バリデーターは既にアプリにインストールされています。

app.js

app.post('/register', test.register);

test.js

var check = require('validator').check,
sanitize = require('validator').sanitize;


exports.register = function(req, res){

    var errors = [];
    req.onValidationError(function(msg) {
        //res.render('signup', { error: msg });
        errors.push(msg);
    });
    req.check(req.body.email, 'Please enter a valid email').len(6,64).isEmail();
    req.check(req.body.username, "Username can't be empty!").isNull();

    if (errors.length) 
         return res.render(
            'register', { regErr: errors.join('\n') }
         );
}

このエラーを修正するにはどうすればよいですか?

4

1 に答える 1

1

を使用してnode-validatorいます。あなたはのために使用する必要がありexpress-validatorますonValidationError

node-validatorページから、それを見ることができます:

Express.js フレームワークを使用している場合は、express-validator ミドルウェアを使用して node-validator をシームレスに統合できます。

Example http://localhost:8080/?zip=12345&foo=1&textarea=large_string

get('/', function (req, res) {
    req.onValidationError(function (msg) {
        //Redirect the user with error 'msg'
    });

追記: の順番app.useも重要です。の上に移動app.use(expressValidator);してみてくださいapp.use(app.router);。の順序はapp.usehttps://github.com/justin-john/node-user-management/blob/master/app.js#L17-L18確認できます。

于 2013-02-25T06:42:30.953 に答える