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;
});
请求和响应对象是标准的 Request
和 Response
类,这里没有魔法。
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 提供的所有中间件的列表。