58 lines
3.0 KiB
Markdown
58 lines
3.0 KiB
Markdown
---
|
||
id: 587d7fb0367417b2b2512bee
|
||
title: Запуск робочого експрес-серверу
|
||
challengeType: 2
|
||
forumTopicId: 301519
|
||
dashedName: start-a-working-express-server
|
||
---
|
||
|
||
# --description--
|
||
|
||
У перших двох рядках файлу `myApp.js`, ви можете побачити, як легко створити об’єкт програми Express. Цей об’єкт має кілька методів, і ви багато із них вивчите за допомогою цих завдань. Одним із фундаментальних методів є `app.listen(port)`. Він повідомляє вашому серверу прослуховувати певний порт, переводячи його в робочий стан. З міркувань тестування нам потрібно, щоб програма працювала у фоновому режимі, тому ми для вас додали цей метод у файл `server.js`.
|
||
|
||
Давайте обслужимо наш перший рядок! В Express маршрути мають наступну структуру:`app.METHOD(PATH, HANDLER)`. METHOD - це метод http у нижньому регістрі. PATH - це відносний шлях на сервері (це може бути рядок або навіть регулярний вираз). HANDLER - це функція, яка викликає Express при узгодженні маршруту. Обробники приймають форму `function(req, res) {...}`, де req - об'єкт запиту, а res - об'єкт відповіді. Наприклад, обробник
|
||
|
||
```js
|
||
function(req, res) {
|
||
res.send('Response String');
|
||
}
|
||
```
|
||
|
||
буде обслуговувати рядок 'Рядок відповіді'.
|
||
|
||
# --instructions--
|
||
|
||
Використовуйте метод `app.get()`, щоб обслужити рядок "Hello Express" для GET запитів, які відповідають шляху `/` (root). Переконайтеся, що ваш код працює, переглянувши журнали, а потім перегляньте результати у попередньому перегляді, якщо ви використовуєте Replit.
|
||
|
||
**Примітка:** Весь код для цих уроків слід додати між кількома рядками коду, з яких ми починали.
|
||
|
||
# --hints--
|
||
|
||
Ваш додаток має обслуговувати рядок "Hello Express"
|
||
|
||
```js
|
||
(getUserInput) =>
|
||
$.get(getUserInput('url')).then(
|
||
(data) => {
|
||
assert.equal(
|
||
data,
|
||
'Hello Express',
|
||
'Your app does not serve the text "Hello Express"'
|
||
);
|
||
},
|
||
(xhr) => {
|
||
throw new Error(xhr.responseText);
|
||
}
|
||
);
|
||
```
|
||
|
||
# --solutions--
|
||
|
||
```js
|
||
/**
|
||
Backend challenges don't need solutions,
|
||
because they would need to be tested against a full working project.
|
||
Please check our contributing guidelines to learn more.
|
||
*/
|
||
```
|