2016-11-13 55 views
0

我試圖用express-validator來驗證基本的聯繫表,我不斷收到一個錯誤,指出:req.getValidationErrors()不是一個函數

TypeError: req.getValidationErrors() is not a function 

這裏是我的代碼縮短的版本:

var express = require('express'); 
var bodyParser = require('body-parser'); 
var validator = require('express-validator'); 

var app = express(); 
app.use(bodyParser.json()); 
app.use(validator()); 

app.post('/send-message', function(req, res) { 
    req.checkBody('name', 'Empty name field').notEmpty(); 
    req.checkBody('email', 'Empty email field').notEmpty(); 
    req.checkBody('email', 'Invalid email format').isEmail(); 
    req.checkBody('message', 'Empty message field').notEmpty(); 

    req.getValidationErrors().then(function(errors) { 
     if (errors) { 
      res.json({ message: 'Failed' }); 
     } 

     res.json({ message: 'Success' }); 
    }); 
}); 

一切正常,直到我打電話getValidationErrors()req對象。

關於我在做什麼錯誤的任何想法?

+0

你肯定'快車validator'表被成功導入? –

+0

代碼似乎沒問題,你安裝了軟件包嗎? – bpinhosilva

+0

您好,這裏是express-validator的維護者。 我對這個問題感到抱歉。這是新的API,目前尚未發佈,計劃在即將到來的v3.0.0上發佈。 現在,請查看npm上的文檔:https://www.npmjs.com/package/express-validator – gustavohenke

回答

4

回答我的問題...

req.getValidationErrors()只是不是一個函數。因此,我認爲文檔中的代碼示例並不是最新的。

這被證明是正確的用法:

var errors = req.validationErrors(); 

if (errors) { 
    res.json({ errors: errors }); 
} 

res.json({ message: 'Success' }); 
+0

wow champ,讓它成爲答案 –