|
UniSet 2.44.3
|
Лёгкий неблокирующий HTTP-сервер на js и частью кода написанного на c++.
Предназначен для встроенного использования JScript и интеграции с простым роутером.
Поддерживает keep-alive, обработку событий в общем цикле выполнения (poll/step), фиксированные ответы с Content-Length и потоковые ответы с Transfer-Encoding: chunked.
Не поддерживает: TLS, HTTP/2.
Запускает сервер и возвращает объект управления.
Параметры:
opts.host (string, по умолчанию "0.0.0.0")opts.port (number, по умолчанию 8080)opts.onRequest(req,res) (function) — обработчик запросовВозвращает:
req.method — строка ("GET", "POST", ...)req.url — оригинальный URIreq.path — путь без queryreq.query — объект параметровreq.headers — объект заголовковreq.body — тело запроса как строкаres.status(code[,reason]) res.setHeader(name,value) res.end([data]) res.json(obj) res.sendStatus(code) Поведение:
end / json / sendStatus). Повторные игнорируются.Transfer-Encoding и не задал Content-Length вручную: Content-Length выставляется автоматически по длине тела при вызове end / json.Content-Length не используется.Сервер использует внутреннюю очередь запросов.
Если очередь заполнена:
503 Service UnavailableЕсли обработчик не завершил ответ за время processTimeout (по умолчанию ~10 секунд):
504 Gateway TimeoutПри внутренних ошибках (исключения из js или c++):
500 Internal Server ErrorПри мягкой остановке (srv.stop()):