learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
35 lines (22 loc) • 2.95 kB
Markdown
Напишіть HTTP **сервер**, що приймає лише POST-запити, підносить всі символи тіла запиту до верхнього регістру та повертає їх клієнту.
Ваш сервер повинен слухати порт, котрий Ви отримаєте в якості першого аргументу командного рядка.
----------------------------------------------------------------------
## ІНФОРМАЦІЯ
Поки Ви не обмежені у використанні потокових можливостей об’єктів `request` та `response`, тож буде набагато легше, якщо Ви ними скористаєтесь.
В npm є дуже багато різних пакетів, які Ви можете використати для *"пристосування (transform)"* потоку данних. Для цієї задачі пакет `through2-map` надає найбільш простий АРІ.
`through2-map` дозволяє створювати *пристосований потік (transform stream)*, використовуючи лише одну функцію, котра приймає фрагмент даних, та повертає фрагмент даних. Це працює практично так само як `Array#map()`, тільки з потоками:
```js
const map = require('through2-map')
inStream.pipe(map(function (chunk) {
return chunk.toString().split('').reverse().join('')
})).pipe(outStream)
```
У прикладі вище, вхідні дані з `inStream` конвертуються в рядок (якщо вони досі не є рядком), символи переставляються у зворотньому порядку і результат спрямовується в `outStream`. Таким чином, ми зробили пристосовувач фрагментів даних у зворотньому порядку! Пам’ятайте, що розмір фрагментів данних визначається поза потоком, тому Ви слабо контролюєте розмір вхідних даних.
Для встановлення `through2-map` введіть:
```sh
$ npm install through2-map
```
Якщо у Вас відсутнє з’єднання з Інтернетом, просто створіть директорію `node_modules` та скопіюйте туди директорію з бібліотекою, котру Ви хочете використовувати з {appname}:
{rootdir:/node_modules/through2-map}
Документацію до through2-map була встановлена разом з {appname}, тож Ви можете читати її, перейшовши у браузері сюди:
{rootdir:/docs/through2-map.html}