Я использую Express-Validator
для проверки моих полей в формах спереди, но функция exists()
не работает.
У меня есть другая форма (форма регистрации), где я использую EV (Express-Validator), и в этом случае все в порядке, я делаю то же самое со второй формой, и здесь она не работает.
game.js (маршрутизация)
const app = require('express')();
const gameController = require('../controllers/gameController');
const { check } = require('express-validator/check');
module.exports = () => {
app.post('/add', [
check('title').exists().withMessage('The PBF Game with this title is actually in database'),
check('link').exists().withMessage('The PBF Game with this website link is actually in database')
], gameController.addGame);
return app;
}
gameController.js
const db = require('../models');
const { validationResult } = require('express-validator/check');
const validation = {
size: 40960,
type: 'image/png'
}
const path = 'uploads/';
module.exports = {
addGame(req, res, next) {
const { title, link, description } = req.body;
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ status: res.statusCode, message: errors.array() });
} else if (req.files.icon.size > validation.size) {
return res.status(400).json({ status: res.statusCode, message: [{ 'msg': 'Your file has more than 50KB!' }] });
} else if (req.files.icon.mimetype !== validation.type) {
return res.status(400).json({ status: res.statusCode, message: [{ 'msg': 'You can upload only PNG files!' }] });
} else {
let file = req.files.icon;
file.mv(path + new Date().getTime() + '-' + file.name, err => {
if (err) {
return res.status(400).json({ message: [{ 'msg': err }] });
}
db.game.create({ title: title, link: link, icon: path + file.name, description: description, flag: false });
return res.status(200).json({ status: res.statusCode, message: 'The game has been added for verification. It should briefly appear in the selection field in the profile. If not, it means that the administrator has not approved the request.' });
});
}
}
}
Express-Validator не проверяет наличие значения в базе данных и передает пустой массив контроллеру, где я проверяю файл и пытаюсь вернуть правильный ответ. Пользователь получает ответ об успешном выполнении (если файл правильный), но на консоли моего сервера отображается красное предупреждение о «ошибке проверки», и никакое значение не заносится в базу данных, но, как я уже говорил, пользователь получает ответ об успешном завершении. Где проблема?