четверг, 6 сентября 2018 г.

A programmer: JavaScript #10

О главном - Часть II (не последняя).

Как это часто бывает, не всё проходит гладко. Я изначально хотел сделать CRUD (Create Read Update Delete - методы работы с базой данных) в отдельном файле, но не получилось быстро найти ответ, как это сделать (поищу позже), поэтому слил всё в один файл. Заодно написал и ввод в базу данных (попутно уточнив новый способ образения к коллекции - стр. 18 - спасибо stackoverflow).

Но оказалось, что введенные данные на страницу выводятся, как и раньше, а в базу не добавляются. Изучение вопроса показало, что поскольку в JavaScript'e всё происходит асинхронно (в противном случае надо специально настраивать и проч.), то нельзя посылать два разных ответа, а у меня именно так и было:

  • в одном случае я посылал данные на фронтенд,
  • в другом - в базу данных.

Пришлось пока оставить что-то одно, я оставил базу данных. Следующая ощибка вылетела с сообщением, смысл которого сводился к тому, что закрыть базу данных надо только один раз, а не два, что я и сделал. В итоге файл получил следующий вид (я специально не показываю здесь GET-запрос для экономии места):


Как видим, подключение веб-сервера находится внутри функции, подключающей базу данных. Строки, из-за которых всё ломается, закомментированы. Я везде понаставил вывод в консоль каждого шага, так чтобы было понятно, что происходит и где ломается.

Но как же всё-таки вывести введенные данные на веб-страницу? Снова-таки, быстрого решения я не нашел, поэтому пойду немного в обход: возьму-ка я эти данные из базы данных! Но об этом - в следующий раз...

Комментариев нет: