Deno 是一款由 Ryan Dahl 主导开发的新型 JavaScript 运行时环境,它的目标是取代 Node.js ,提供更好的开发体验。本文将介绍如何使用 Deno 创建 HTTP 服务器。
准备工作
首先,你需要安装 Deno。你可以从官方网站 https://deno.land/ 下载最新版本的 Deno。
创建 HTTP 服务器
在 Deno 中创建 HTTP 服务器只需要几行代码。以下是一个简单的例子:
// javascriptcn.com 代码示例 import { serve } from "https://deno.land/std/http/server.ts"; const server = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of server) { req.respond({ body: "Hello World\n" }); }
上面的代码通过 import
引入了 serve
函数,该函数接受一个配置对象,并返回一个 HTTP Server 对象。你可以为该对象指定一个端口号以监听 HTTP 请求。
最后一行代码使用 for await...of
语法监听 HTTP 请求,当有请求进来时,执行回调函数并返回一个响应体 "Hello World"。
指定 HTTP 请求处理函数
上面的例子中只有一个请求处理函数,它返回了固定的响应体。实际上,我们可以为不同的 URL 指定不同的请求处理函数。
以下是一个例子:
// javascriptcn.com 代码示例 import { serve } from "https://deno.land/std/http/server.ts"; const server = serve({ port: 8000 }); console.log("http://localhost:8000/"); const handleRequest = (req) => { switch (req.url) { case "/": req.respond({ body: "Hello World\n" }); break; case "/about": req.respond({ body: "About Us\n" }); break; default: req.respond({ body: "404 Not Found\n" }); } }; for await (const req of server) { handleRequest(req); }
上面的代码定义了一个 handleRequest
函数,它根据请求的 URL 返回不同的响应体。在监听 HTTP 请求时,我们调用这个函数处理请求。
添加中间件
如果你熟悉 Express.js 中的 middleware
概念,你应该知道如何处理 HTTP 请求流程中的前置过程、后置过程。在 Deno 中,我们同样可以使用中间件(middlewares)来拦截、处理 HTTP 请求。
以下是一个例子:
// javascriptcn.com 代码示例 import { serve } from "https://deno.land/std/http/server.ts"; import { loggerMiddleware } from "./middlewares/logger.ts"; const server = serve({ port: 8000 }); console.log("http://localhost:8000/"); const handleRequest = (req) => { switch (req.url) { case "/": req.respond({ body: "Hello World\n" }); break; case "/about": req.respond({ body: "About Us\n" }); break; default: req.respond({ body: "404 Not Found\n" }); } }; for await (const req of server) { loggerMiddleware(req, handleRequest); }
上面的代码通过 import
引入了 loggerMiddleware
中间件函数。在监听 HTTP 请求时,我们将中间件函数和请求处理函数都传入 for await...of
循环中,以便处理 HTTP 请求。
注意,使用中间件时需要注意中间件函数的顺序。如果中间件函数顺序不正确,可能导致请求没有被正确处理。
总结
本文介绍了如何在 Deno 中创建 HTTP 服务器,包括创建 HTTP Server 对象、定义请求处理函数及中间件的使用等方面。这些知识点对于前端开发者来说都是非常必要的,希望本文能够为你带来帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6530f05f7d4982a6eb281f57