Server

为你的站点搭建服务器。

Lume 包含一个 Server 类,用于运行 HTTP 服务器。 你可以使用此类来启动你自己的服务器,例如,用于在 Deno Deploy 中提供静态文件。 让我们看一个服务器的基本示例:

import Server from "lume/core/server.ts";

const server = new Server({
  port: 8000,
  root: `${Deno.cwd()}/_site`,
});

server.start();

console.log("Listening on http://localhost:8000");

这段代码在端口 8000 上启动一个本地服务器,并提供 _site 文件夹中的静态文件。

事件

你可以为服务器分配事件监听器:

server.addEventListener("start", () => {
  console.log("Server started successfully");
});

中间件

为了自定义服务器如何处理请求和响应,这里有一个简单的中间件系统,其签名如下:

server.use(async (request, next) => {
  // 在这里你可以修改请求,然后再将其传递给下一个中间件
  const response = await next(request);

  // 在这里你可以修改响应,然后再将其返回给上一个中间件
  return response;
});

请求和响应对象是标准的 RequestResponse 类,这里没有魔法。

Lume 提供了一些中间件用于常见的用例:

import Server from "lume/core/server.ts";
import expires from "lume/middlewares/expires.ts";

const server = new Server();

server.use(expires());

server.start();

访问 Plugins/middleware 以查看 Lume 提供的所有中间件的列表。