NodeJS. Что такое Query Strings.
Всем привет! В этой статье мы рассмотрим, что такое Query Strings и как их использовать в NodeJS.
Query String – это строка запроса. Вы уже, наверняка, видели такие строки, где после знака вопроса идут какие-то параметры:
// пример строки запроса
http://site.ru/articles/science?page=7&start=1
Давайте научимся получать и использовать такую информацию из адресной строки в NodeJS и сразу рассмотрим все на полезном примере.
Немного изменим наш код в файле app.js:
app.get('/contact', function(req, res) {
res.render('contact', {qs: req.query});
})
Здесь мы создаем объект, в котором есть свойство qs, куда записывается еще один объект, полученный из метода query(), где записаны названия параметров(свойства) и их значения. Т.е., чтобы получить информацию из строки запроса, нам всего лишь нужно использовать уже готовый метод query() в NodeJS. Также, поскольку мы записываем все это вторым параметром метода render(), то вся эта информация будет сразу же отправлена в наш шаблон contact.ejs. Давайте туда сразу же и перейдем. После параграфа с описанием страницы вставьте этот код:
<form action="/contact" method="post" id="contact-form">
<label for="who">С кем вы хотите связаться?</label>
<input type="text" name="who" value="<%= qs.person %>">
<label for="department">Какой отдел?</label>
<input type="text" name="department" value="<%= qs.dept %>">
<label for="email">Ваш Email</label>
<input type="email" name="email">
<input type="submit" value="Отправить">
</form>
Как видно из кода, это очень простая форма для связи с кем-нибудь из какого-нибудь отдела. Однако нам может в адресной строке сразу прийти информация об этом, например, в таком виде:
127.0.0.1:3000/contact?dept=IT&person=Ivan
И тогда мы сразу берем эту информацию из пришедшего из метода query() объекта и подставляем в нужные поля формы. Вот такой простой, но полезный пример.
А на этом сегодня все. Спасибо за внимание!
-
- Михаил Русаков
Комментарии (1):
Не понятно так как нет примера на jsfiddle.net или jsbin.com
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.