Получить данные из базы данных (Javascript)

407
29 июня 2017, 05:02

Добрый день. Дано задание: есть html-страничка, на которой выведены поля для задания критерия поиска. Надо получить данные из базы данных, используя значения из вышеуказанных полей (их много и не все обязательные). Есть большой опыт получения данных из БД через .net, но здесь идет пока чистый html & js (+ bootstrap & jquery). В задании прозвучала фраза - создать api для получения данных. С этим (api) нет опыта работы. Буду признательна за указания направления действий. Где можно найти информацию по этому вопросу - для изучения? Так же при обсуждении задания прозвучала мысль об использовании Aurelia. Но я пока не понимаю, как этот фреймворк тут применять. Пока речь не идет о написании портала, на данном этапе просто нужна html-страничка, на которой будет происходить поиск данных из БД.

Answer 1

Вам действительно понадобится сервер. Самый простой и классический вариант, который легко организовать на любом хостинге: AJAX + php + MySQL.

Можно написать сервер на .net, но надо будет организовать его работу - для простых задач это лишнее усложнение. А для себя для такой задачи я выбрал бы сервер на Node JS + Mongo, так как их синтаксис - тот же самый js, их связка без проблем работает с большой нагрузкой, а создание и запросы бд на монго просты и интуитивны.

Единственная сложность - организовать сервер на ноде или использовать heroku, так как готовых простых решений/хостингов для ноды нету. Под апи я так понимаю REST. В простейшем варианте на php вам нужно будет создать страничку в корневой папке сайта на сервере search.php, которая бы отвечала на GET запрос вида:

yoursite.ru/search.php?city=bobruisk&street=lenina

высылая какие-нибудь данные в каком-либо виде, например в JSON:

[{
            "owner": "Осипенко Олег Эдуардович",
            "rooms": "3",
            "price": "$130",
            "adress": "Республика Беларусь, г. Бобруйск, ул. Ленина 13",
            "email": "osipenko123@mail.ru",
},{
            "owner": "Иванов Иван Иванович",
            "rooms": "2",
            "price": "$150",
            "adress": "Республика Беларусь, г. Бобруйск, ул. Ленина 4",
            "email": "ivanov1992@mail.ru",
}]

Смысл в том, вы на сайте с помощью AJAX отправляете запрос

GET yoursite.ru/search.php?city=bobruisk&street=lenina

сервер получает запрос, парсит параметры

city=bobruisk&street=lenina

подключается к базе данных и ищет в базе соответствия с помощью запросов к базе. Если нашел необходимые (в моем случае квартиры) данные, то выдает ответ со статусом 200, в котором в JSON хранятся квартиры. Вы парсите ответ с помощью javascript и собираете из них блоки или таблицу в HTML.

READ ALSO
Вывод сообщений онлайн чатом на экран

Вывод сообщений онлайн чатом на экран

Есть страница chathtml на которой есть поле ввода сообщения, кнопка отправки и поле вывода(таблица)

304
Как отключить логирование в консоле в fetch?

Как отключить логирование в консоле в fetch?

Вывод каждого результата после запроса

178
Куда вставить default если не передаётся фото - JS, mongodb?

Куда вставить default если не передаётся фото - JS, mongodb?

Kуда вставить default, что бы если не передаётся фото по умолчанию, создавалось одно фото с kind: 'thumbnail' и определённым url ?

193
create-react-app + php

create-react-app + php

Как подключить react к серверу php ,сейчас при build(npm run build) и подключении к php indexhtml ,видна только html страница,а скрипт не запускается ,а запускается...

215