10

我正在寻找在 Deno 中创建 https 服务器的示例。我见过 Deno http 服务器的例子,但没有见过 https。

我尝试在谷歌搜索但没有找到结果

4

6 回答 6

7

serveTLS与 Deno 0.23.0 一起登陆:

示例用法:

import { serveTLS } from "https://deno.land/std/http/server.ts";

const body = new TextEncoder().encode("Hello HTTPS");
const options = {
  hostname: "localhost",
  port: 443,
  certFile: "./path/to/localhost.crt",
  keyFile: "./path/to/localhost.key",
};
// Top-level await supported
for await (const req of serveTLS(options)) {
  req.respond({ body });
}
于 2019-11-09T22:39:54.807 回答
1

使用 Deno 1.9+,您可以使用本机服务器。它提供了使用 HTTPS 的能力。

旧的std/http. 但是,从版本开始0.107.0,也使用本机服务器std/http

例子:

const server = Deno.listenTls({
  port: 443,
  certFile: "./my-ca-certificate.pem",
  keyFile: "./my-key.pem"
});

for await (const conn of server) {
  handle(conn);
}

async function handle(conn: Deno.Conn) {
  const httpConn = Deno.serveHttp(conn);
  
  for await (const requestEvent of httpConn) {
    try {
      const response = new Response("Hello World!");
      await requestEvent.respondWith(response);
    } 
    catch (error) {
      console.error(error);
    }
  }
}
于 2021-08-15T19:14:24.147 回答
0

首先,可以使用 DENO 标准库创建一个 HTTPS 服务器。但就我而言,我为我的应用程序使用了 OAK 库。更多关于橡树图书馆的信息可以在这里找到。步骤 1:准备好证书文件和密钥文件(假设它们是为您喜欢的任何域名生成的。它可能只是 localhost)。如果您不知道这意味着什么,请阅读这篇文章。. 第 2 步:是时候配置应用的收听选项了。您可以复制以下代码行并根据需要更改 certFile 和 keyFile 选项的路径。下面给出更多解释。

await app.listen({ port: port, secure: true, certFile: "<path-to-file>/<file-name>.pem", keyFile: "<path-to-file>/<file-name>-key.pem" });

如果您想知道上一行发生了什么:

  1. Oak 的应用程序的侦听方法接受要配置的选项,这些选项是ListenOptions类型,可以是分别从Deno.ListenOptionsDeno.ListenTlsOptions继承的ListenOptionsBaseListenOptionsTls。如果您检查 Deno.ListenTlsOptions,则有两个选项,即 certFile 和 keyFile,它们分别接受证书的路径和证书的密钥,它们都是 .pem 文件。
于 2021-06-10T08:07:04.333 回答
0

现在 Dano 支持 TLS 绑定。以下是创建 https 服务器的方法:

import { serveTLS } from "https://deno.land/std/http/server.ts";

    const body = new TextEncoder().encode("Hello HTTPS");
    const options = {
      hostname: "localhost",
      port: 443,
      certFile: "./path/to/localhost.crt",
      keyFile: "./path/to/localhost.key",
    };

for await (const req of serveTLS(options)) {
  req.respond({ body });
}

服务TLS

论据 options: any

返回服务器

listenAndServeTLS

listenAndServeTLS(options, (req) => {
   req.respond({ body });
 });

听并服务TLS

论据

  • options: any

  • handler: (req: ServerRequest) => void

返回:任何

更多详情请查看官方文档:

于 2019-12-11T21:02:20.963 回答
0

使用 deno Oak 框架怎么样?

https://github.com/oakserver/oak

我认为该项目是 Deno 中最稳定的 Web 框架。而且您还可以从中获得很多想要了解的信息。

于 2020-05-16T06:08:56.893 回答
-2

你检查过 DENO ABC 吗?它是创建 Web 应用程序的更好框架。在https://deno.land/x/abc/README.md阅读更多内容。

import { abc } from "https://deno.sh/abc/mod.ts";
const app = abc();
app
  .get("/hello", c => {
    return "Hello, Abc!";
  })
  .start("0.0.0.0:8080");
于 2019-10-01T08:03:02.837 回答