Во-первых, вам нужно импортировать validationResult
из express-validator
, в свой код вы импортируете validationResults
.
Во-вторых, вы не используете промежуточное ПО userSignUpValidate
. Это промежуточное ПО можно использовать в контроллере, но лучше использовать его в userRoute, чтобы поддерживать контроллер в чистоте.
Так что давайте применим userSignUpValidate
промежуточное ПО для userRoutes. Если пути к файлам не совпадают с вашими, исправьте их.
const express = require("express");
const router = express.Router();
const usersController = require("../controllers/userController");
const userSignUpValidate = require("../validator/userSignUpValidate");
router.post("/register", [userSignUpValidate], usersController.userCreation);
module.exports = router;
Затем в контроллере нам нужно импортировать validationResult
из express-validator
и использовать его:
const { validationResult } = require("express-validator");
function userCreation(req, res) {
try {
const errors = validationResult(req);
if(!errors.isEmpty()) {
console.log(errors);
return res.status(400).json({
error: {
message: errors.array()[0].msg
}
});
}
//other code you have
} catch (error) {
return res.status(400).json({
error: {
message: error
}
});
}
}
exports.userCreation = userCreation;
Когда мы отправляем тело запроса с трехсимвольным паролем, как это:
{
"userId": "userid",
"userPassword": "123",
"userPhoneNumber": "1234567890",
"userEmail": "abc@gmail.com"
}
Ответ будет таким с 400 - Плохой запрос:
{
"error": {
"message": "The password at least more than 6 characters!"
}
}