learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
36 lines (22 loc) • 2.97 kB
Markdown
Реализуйте HTTP **сервер** который принимает только POST запросы и конвертирует все символы тела запроса в верхний регистр и возвращает их клиенту.
Ваш сервер должен слушать порт, который Вы получите в качестве первого аргумента командной строки.
----------------------------------------------------------------------
## ИНФОРМАЦИЯ
Пока Вы не ограничены в использовании потоковых возможностей объектов `request` и `response`, это будет намного легче, если Вы ими воспользуетесь.
Есть множество различных библиотек в npm, которые Вы можете использовать для *"преобразования"* потока данных. Библиотека `through2-map` предоставляет самое простое API для данной задачи.
`through2-map` позволяет создать *преобразованный поток*, используя только одну функцию, которая принимает фрагмент данных и возвращает фрагмент данных. Это работает практически так же как `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 Вы cможете получить, набрав в браузере:
{rootdir:/docs/through2-map.html}