• Как поправить этот код чтобы можно было обновить данные в бд( при взаимодействии с методом класса в Node.js)?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Проверьте тот запрос, который отправляется в БД. В библиотеке по работе с БД наверняка должен быть режим отладки.
    Подозреваю, у вас порядок аргументов не тот:
    Тут data идет третьим аргументом: static update(id, cb, data)
    А тут объект передается вторым:
    us_crud.update(
            id,
            {firstName: req.body.firstName, lastName: req.body.lastName, email: req.body.email, image: req.body.image},
            (err) => {...}
        )

    Я рекомендую не забивать на типизацию, дабы не сталкиваться с такими ошибками. =)
    Например:
    static update(id: string, cb: (err?: Error) => void, data: Record<string, string | number | bool>)


    Еще могу посоветовать перейти на промисы. Подход с коллбэками уже изрядно устарел.
    Ответ написан
    2 комментария
  • Как изменить этот код чтобы при отправке post запроса не приходил undefined (node.js)?

    boratsagdiev
    @boratsagdiev
    Всё должно работать, скорее всего отправляете пустой body, либо в неправильном формате. На скрине пример отправки JSON'а.

    638b0dbb9ce5b186620750.png
    Ответ написан
    2 комментария
  • Как сделать чтобы этот код работал и правильно ли я вообще действую?

    @rPman
    Чтобы на вкладке response в devtools было json-представление, но чтобы на самой странице клиента(фронтенд) не было никакого json-а
    так не получится, браузеры не умеют json автоматически преобразовывать к пользовательскому виду.

    p.s. Если бы вместо json тебе подошел бы xml (тоже инструмент передачи структурированных данных) то можно было бы воспользоваться шаблоном xslt (их поддерживают все браузеры, стандарт старый), пример (кстати в доке ошибка, правильно - в браузере открывают xml файл, который преобразуется с помощью xslt в нормальный html, но в консоли будет только xml)

    xslt вообще странный и очень функциональный стандарт, позволяет делать странные вещи и формально на нем можно писать полноценные веб сайты полностью собираемые на стороне пользователя, даже без скриптов, но он на столько неудобный что подойдет только для совсем упоротых гиков ну или очень простых случаев

    p.s. есть еще base64 кодирование файла в самой ссылке, в консоли он тоже не отобразится но не уверен что тебе подойдет это, к тому же на сколько я помню браузеры в последние лет пять сломали этот механизм именно для стартовой страницы, проведи эксперименты если прямо надо

    Пример ссылки:
    data:text/html;charset=utf-8;base64,PHNjcmlwdD5hbGVydCgnaGknKTs8L3NjcmlwdD4=
    как видишь хабр такие ссылки режет, так как иначе это огромная дыра в безопасности (украсть куки можно)
    Ответ написан
    4 комментария
  • Как на php вернуть конкретную ошибку при оправке формы Ajax?

    Shlop
    @Shlop
    Full Stack Developer (PHP/Laravel/JavaScript)
    Код может выглядеть вот так:
    $("#form").submit(function(e) {
            e.preventDefault();
                $.ajax({
                    dataType: 'json', //Тип данных, в котором ожидается получить ответ от сервера.
                    type: "POST",
                    url: "send.php",
                    data: $(this).serialize()
                }).done(function(response) { // В response находится ответ от сервера который отправлен через echo из send.php
                    if(!response.status) {
                        alert("Что-то не так");
                    }
                    else {
                        alert("Всё ок!");
                    }
                }).fail(function () {
                    
                });
                return false;
            });

    // Если такой логин есть, значит ошибка
    if ( R::count('users', "login = ?", array($_POST['login'])) > 0) {
    	$response = [
    		'messages_error' => 'Пользователь с таким Логином уже существует!',
    		'status' => false,
    	];
    	echo json_encode($response); // Отправляем json ответ от сервера
    } 
    else {
    	// Если логин уникальный - регистрируем юзера
    	$user = R::dispense('users');
    	$user->login = $_POST['login'];
    	$user->password = $_POST['password'];
    	R::store($user);
    }


    И кстати как инструмент для просмотра запросов к серверу и ответов от сервера, можно использовать вкладку Network в DevTools браузер Google Chrome, ну и в других браузерах тоже есть такая вкладка
    5d4740daa6684529130203.png
    Ответ написан