Всем привет! В этом материале рассмотрим, что такое Query Strings и как их использовать в NodeJS .

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() объекта и подставляем в нужные поля формы. Вот такой простой, но полезный пример.

А на этом сегодня все. Спасибо за внимание!