Перейти к основному содержимому

LunaticServer

Свойства

httpServer

Тип: readonly http.Server

HTTP сервер, используемый для получения запросов и отправки ответов.

Методы

constructor(httpServer?: http.Server)

  • httpServer: http.Server - HTTP сервер, используемый для получения запросов и отправки ответов

Создаёт экземпляр класса LunaticServer. Вы можете указать используемый http.Server, например, для того чтобы использовать https протокол, или для интеграции других фреймворков, таких как Socket.io:

import { LunaticServer } from '@shelepuginivan/lunatic'
import { createServer } from 'http'
import { Server } from 'socket.io'

const app = new LunaticServer()
const httpServer = createServer(app.callback)
const io = new Server(httpServer)

app.callback(req: http.IncomingMessage, res: http.ServerResponse): void

Функция-callback, которая обрабатывает запрос. Этот метод может быть передан в другие методы и конструкторы, например в конструктор http.Server:

import { LunaticServer } from '@shelepuginivan/lunatic'
import { Server } from 'http'

const app = new LunaticServer()
const httpServer = new Server(app.callback)

app.disable(feature: ApplicationFeature): LunaticServer

  • feature: ApplicationFeature - функция, которая будет отключена

Отключает указанную функцию приложения.

app.enable(feature: ApplicationFeature): LunaticServer

  • feature: ApplicationFeature - функция, которая будет включена

Включает указанную функцию приложения.

app.listen(port?: number, hostname?: string, backlog?: number): Promise<void>

  • port: number | undefined - порт, который будет прослушивать сервер
  • hostname: string | undefined - IP-адрес, который будет прослушивать сервер
  • backlog: number | undefined - максимальная длина очереди ожидающих соединений
примечание

Для более подробной информации об аргументах, см. https://nodejs.org/api/net.html#serverlisten.

Запускает используемый http.Server на указаном порту. В сущности, это:

await app.listen(8000)

синтаксический сахар для:

import { LunaticServer } from '@shelepuginivan/lunatic'
import { createServer } from 'http'

const app = new LunaticServer()

const httpServer = createServer()
httpServer.on('request', app.callback)
httpServer.listen(8000)

Это позволяет запускать разные серверы на разных портах, например:

import { createServer as createHttpServer } from 'http'
import { createServer as createHttpsServer } from 'https'

const app = new LunaticServer()
const httpServer = createHttpServer(app.callback)
const httpsServer = createHttpsServer(app.callback)

httpServer.listen(80)
httpsServer.listen(443)

app.renderer(renderFunction: RenderFunction): LunaticServer

  • renderFunction: RenderFunction - функция, которая используется для рендера HTML-шаблонов

Позволяет использовать фунцию-рендерер (RenderFunction), которая будет использована при вызове Response.render() и Response.renderFile() для рендера HTML-шаблонов.

app.toggle(feature: ApplicationFeature): LunaticServer

  • feature: ApplicationFeature - функция, которая будет переключена

Переключает указанную функцию приложения.