функция Deno.serve
serve(handler: ServeHandler<Deno.NetAddr>): HttpServer<Deno.NetAddr>Обрабатывает HTTP-запросы с заданным обработчиком.
В примере ниже обработка выполняется на порте 8000 на хосте "127.0.0.1".
Deno.serve((_req) => new Response("Hello, world"));
Параметры
handler: ServeHandler<Deno.NetAddr> Тип возвращаемого значения
HttpServer<Deno.NetAddr> serve(options: ServeUnixOptions,handler: ServeHandler<Deno.UnixAddr>,): HttpServer<Deno.UnixAddr>Обрабатывает HTTP-запросы с заданным обработчиком и пакетом опций.
Вы можете указать путь к сокету с помощью опции path.
Deno.serve(
{ path: "path/to/socket" },
(_req) => new Response("Hello, world")
);
Вы можете остановить сервер с помощью AbortSignal. Сигнал прерывания должен быть передан в качестве опции signal в пакете опций. Сервер прерывается при прерывании сигнала прерывания. Чтобы дождаться закрытия сервера, дождитесь выполнения промиса, возвращаемого API Deno.serve.
const ac = new AbortController();
const server = Deno.serve(
{ signal: ac.signal, path: "path/to/socket" },
(_req) => new Response("Hello, world")
);
server.finished.then(() => console.log("Server closed"));
console.log("Closing server...");
ac.abort();
По умолчанию Deno.serve выводит сообщение Listening on path/to/socket при прослушивании. Если вы хотите изменить это поведение, вы можете указать пользовательский onListen обратный вызов.
Deno.serve({
onListen({ path }) {
console.log(`Server started at ${path}`);
// ... more info specific to your server ..
},
path: "path/to/socket",
}, (_req) => new Response("Hello, world"));
Параметры
options: ServeUnixOptions handler: ServeHandler<Deno.UnixAddr> Тип возвращаемого значения
HttpServer<Deno.UnixAddr> serve(options: ServeTcpOptions | (ServeTcpOptions & TlsCertifiedKeyPem),handler: ServeHandler<Deno.NetAddr>,): HttpServer<Deno.NetAddr>Обрабатывает HTTP-запросы с заданным пакетом опций и обработчиком.
Вы можете указать объект с опциями порта и хоста, который является адресом для прослушивания. По умолчанию используется порт 8000 на хосте "0.0.0.0".
Вы можете изменить адрес прослушивания с помощью опций hostname и port. В примере ниже используется порт 3000 и хост "127.0.0.1".
Deno.serve(
{ port: 3000, hostname: "127.0.0.1" },
(_req) => new Response("Hello, world")
);
Вы можете остановить сервер с помощью AbortSignal. Сигнал прерывания должен быть передан в качестве опции signal в пакете опций. Сервер прерывается при прерывании сигнала. Чтобы дождаться закрытия сервера, дождитесь выполнения промиса, возвращаемого API Deno.serve.
const ac = new AbortController();
const server = Deno.serve(
{ signal: ac.signal },
(_req) => new Response("Hello, world")
);
server.finished.then(() => console.log("Server closed"));
console.log("Closing server...");
ac.abort();
По умолчанию Deno.serve выводит сообщение Listening on http://<hostname>:<port>/ при прослушивании. Если вы хотите изменить это поведение, вы можете указать пользовательский onListen обратный вызов.
Deno.serve({
onListen({ port, hostname }) {
console.log(`Server started at http://${hostname}:${port}`);
// ... more info specific to your server ..
},
}, (_req) => new Response("Hello, world"));
Для включения TLS необходимо указать опции key и cert.
const cert = "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----\n";
const key = "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n";
Deno.serve({ cert, key }, (_req) => new Response("Hello, world"));
Параметры
options: ServeTcpOptions | (ServeTcpOptions & TlsCertifiedKeyPem) handler: ServeHandler<Deno.NetAddr> Тип возвращаемого значения
HttpServer<Deno.NetAddr> serve(options: ServeUnixOptions & ServeInit<Deno.UnixAddr>): HttpServer<Deno.UnixAddr>Обрабатывает HTTP-запросы с заданным пакетом опций.
Вы можете указать объект с опцией пути, которая является сокетом unix-домена для прослушивания.
const ac = new AbortController();
const server = Deno.serve({
path: "path/to/socket",
handler: (_req) => new Response("Hello, world"),
signal: ac.signal,
onListen({ path }) {
console.log(`Server started at ${path}`);
},
});
server.finished.then(() => console.log("Server closed"));
console.log("Closing server...");
ac.abort();
Параметры
options: ServeUnixOptions & ServeInit<Deno.UnixAddr> Тип возвращаемого значения
HttpServer<Deno.UnixAddr> serve(options: (ServeTcpOptions | (ServeTcpOptions & TlsCertifiedKeyPem)) & ServeInit<Deno.NetAddr>): HttpServer<Deno.NetAddr>Обрабатывает HTTP-запросы с заданным пакетом опций.
Вы можете указать объект с опциями порта и хоста, который является адресом для прослушивания. По умолчанию используется порт 8000 на хосте "0.0.0.0".
const ac = new AbortController();
const server = Deno.serve({
port: 3000,
hostname: "127.0.0.1",
handler: (_req) => new Response("Hello, world"),
signal: ac.signal,
onListen({ port, hostname }) {
console.log(`Server started at http://${hostname}:${port}`);
},
});
server.finished.then(() => console.log("Server closed"));
console.log("Closing server...");
ac.abort();
Параметры
options: (ServeTcpOptions | (ServeTcpOptions & TlsCertifiedKeyPem)) & ServeInit<Deno.NetAddr> Тип возвращаемого значения
HttpServer<Deno.NetAddr>
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/deno/~/Deno.serve