2017-08-12 140 views
0

我正在構建一個快速應用程序,並使用了快速驗證程序(https://github.com/ctavan/express-validator)。請求丟失身體

我使用它作爲一箇中間件:

export default function verifyLogin(req, res, next) { 
    req.checkBody({ 
     'email': { 
      notEmpty: true, 
      isEmail: { 
       errorMessage: 'Invalid Email' 
      }, 
      errorMessage: "Empty" 
     }, 
     'password': { 
      notEmpty: true, 
      errorMessage: 'Empty', 
      "isLength": { 
       options: [{min: 5, max: 20}], 
       errorMessage: "Password must be between 5 and 20 chars long" 
      } 
     } 
    }); 

    req.getValidationResult().then(result => { 
     if(!result.isEmpty()) { 
      res.send(result.array()); 
      console.log('In here, wrong params'); 
     } else { 
      next(); 
     } 
    }); 
} 

但是,如果我改變res.send(result.array());res.status(422).send(result.array());請求的主體缺失,如果我在第一線記錄它的功能之後(我用req.CheckBody前)。

我完全不知道這種行爲。任何線索?

加了: 如果我從角度發送帖子請求並且使用res.status().send,但不是來自郵遞員,我得到一個空身。 如果我使用res.send() - 郵差和斜角作品。

回答

0

問題是內容類型未在angular2應用程序中指定。

由於某些原因,使用res.status()時,需要指定content-type,但在使用res.send()時不會。