Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверка заполненности поля (https://javascript.ru/forum/misc/81722-proverka-zapolnennosti-polya.html)

mateorich 18.01.2021 16:42

Проверка заполненности поля
 
Всем привет. Разбираюсь с REST API и словил маленький тупняк. Я передаю в базу данных объект вида:
{
"title": "",
"price": "25000",
"image": "***"
"user_id": "***"
}
И мне нужно реализовать проверку заполненности поля title, если название указано то отправлять запрос в БД, если же поле пустое, то выводить ошибку. Я вроде бы реализовал проверку, но она не работает, не могу понять почему. Буду признателен за помощь.
exports.items = (req, res) => {
    db.query("SELECT `id`, `title`, `price`, `image`, `user_id` FROM `items` WHERE `title` = '" + req.body.title + "'", (error, rows, fields) => {
        if(typeof rows == 'undefined' && rows.length === 0) {
            response.status(422, {message: `Укажите название`}, res)
        } else {
            const title = req.body.title
            const price = req.body.price
            const image = req.body.image
            const user_id = req.body.user_id
 
            const sql = "INSERT INTO `items` (`title`, `price`, `image`, `user_id`) VALUES ('" + title + "', '" + price + "', '" + image + "', '" + user_id + "')";
                db.query(sql, (error, result) => {
                    if(error) {
                        response.status(400, error, res)
                    } else {
                        response.status(200, {message: `Обьект создан`, result}, res)
                    }
                })
        }
    })
}

Nexus 18.01.2021 17:04

Цитата:

Сообщение от mateorich
мне нужно реализовать проверку заполненности поля title, если название указано то отправлять запрос в БД, если же поле пустое, то выводить ошибку. Я вроде бы реализовал проверку, но

Как-то странно вы её реализовали. Сами же пишете, что проверку нужно сделать до запроса, а в коде сначала запрос, потом проверка.

Перенесите в строку 2 свою строку 6, в строку 3 добавьте это:
if (!String(title).trim().length) {
    return void response.status(422, {message: 'Укажите название'}, res);
}


P.S. templates string лучше использовать по назначению, а не просто для инициализации строки.


Часовой пояс GMT +3, время: 18:57.