JSON и AJAX¶
JSON представляет один из самых популярных форматов хранения и передачи данных, и Express имеет все возможности для работы с JSON.
Пусть в папке проекта имеется файл index.htm
со следующим кодом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
Здесь, как и в прошлой теме, определена форма с двумя полями для ввода имени и возраста пользователя. Но теперь с помощью обработчика нажатия перехватывается отправка этой формы. Мы получаем значения ее полей и сериализум в объект json, который затем отправляется на сервер с помощью ajax на адрес /user
.
Далее определим в главном файле приложения - в app.js
код, который бы принимал отправленные данные:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Прежде всего для получения данных в формате json необходимо создать парсер с помощью функции json
:
1 |
|
В реальности данный парсер будет использовать модуль bodyParser
, который использовался нами ранее для парсинга данных отправленной формы.
И поскольку с клиентом мы взаимодействуем через формат json, то данные клиенту отправляются с помощью метода response.json()
:
1 2 3 4 5 6 |
|
Следует отметить, что в принципе мы можем отправить объект и с помощью стандартного метода response.send(request.body)
. В реальности метод response.json()
устанавливает для заголовка Content-Type
значение application/json
, серилизует данные в json с помощью функции JSON.stringify()
и затем отправляет данные с помощью response.send()
.
Для получения данных, как и в случае с формами, используются выражения типа request.body.userName
, где request.body
инкапсулирует данные формы, а userName
- ключ данных.
При обращении к корню веб-приложения пользователю будет отправляться содержимое файла index.htm
с формой ввода данных.
Запустим приложение и обратимся к корню веб-сайта. Введем какие-нибудь данные и после отправки в консоли браузера отобразится ответ сервера: