随着前端技术的快速发展,前端工程师们在构建 Web 应用时变得越来越重要。Deno 是一个新的 TypeScript 运行时环境,被誉为 Node.js 的替代品,提供了一种更加简洁、安全和可靠的开发体验。本文将介绍如何在 Deno 中创建 REST API,并提供基础教程和示例代码。
准备工作
在开始之前,需要安装 Deno 运行时环境。可以在 Deno 的官方网站 https://deno.land/ 上直接下载最新版本的安装包。安装完成后,请确保在命令行中可调用 deno
命令。
初始化项目
在创建 REST API 之前,需要先初始化一个项目。首先,创建一个新的文件夹,并在命令行中进入该文件夹:
mkdir my-rest-api cd my-rest-api
然后,创建一个名为 app.ts
的文件,这将是我们的 Deno 应用程序的入口点。可以使用任何编辑器打开这个文件,并输入以下代码:
// javascriptcn.com 代码示例 import { Application } from 'https://deno.land/x/oak/mod.ts'; const app = new Application(); app.use(async (ctx) => { ctx.response.body = 'Hello, World!'; }); await app.listen({ port: 8000 });
这段代码使用 Oak 框架,它是一个面向中间件的 Web 框架,可以帮助我们轻松地构建 REST API。在代码中,我们创建了一个 Application
实例,并告诉它在 8000 端口上监听请求。然后,我们定义了一个中间件函数,它会将一个字符串“Hello, World!”作为响应的主体内容。
运行应用程序
有了项目的基本结构之后,我们可以将应用程序运行起来。在命令行中,输入以下命令:
deno run --allow-net app.ts
这条命令告诉 Deno 运行我们的应用程序,同时指定了 --allow-net
参数,允许我们在本地机器上监听网络请求。这会启动服务,并在命令行中输出以下信息:
HTTP server listening on http://0.0.0.0:8000/
此时,我们已经可以访问 API 了。打开浏览器,并在地址栏中输入 http://localhost:8000。如果一切顺利,应该看到一个 “Hello, World!” 字样。
创建路由
现在,我们可以在应用程序中定义不同的路由,来处理不同的 HTTP 请求。创建路由的方式非常简单,只需要调用应用程序实例的 router
方法,定义一个新的路由,然后为该路由定义相应的中间件。
以下是一个演示如何创建路由的示例:
// javascriptcn.com 代码示例 import { Application, Router } from 'https://deno.land/x/oak/mod.ts'; const app = new Application(); const router = new Router(); router .get('/', (ctx) => { ctx.response.body = 'Hello, World!'; }) .get('/users', (ctx) => { ctx.response.body = 'Users list'; }) .get('/users/:id', (ctx) => { const { id } = ctx.params; ctx.response.body = `User with id ${id}`; }); app.use(router.routes()); await app.listen({ port: 8000 });
在代码中,我们创建了一个 Router
实例,并定义了三个路由:
/
/users
/users/:id
每个路由都使用 .get()
方法来定义一个 GET 请求。第一个路由处理根路径请求,第二个路由处理用户列表请求,第三个路由根据用户 ID 显示单个用户的详细信息。
在第三个路由中,我们使用了一个 :id
参数,这是一个动态路由参数,可以在路由相关的中间件中访问,以便执行更加个性化的处理。在示例代码中,我们使用了这个参数来查询单个用户的详细信息。
处理 POST 请求
创建 REST API 的另一个重要部分是处理 POST 请求。POST 请求可用于在服务器上创建新资源、提交表单、上传文件等。以下是一个处理 POST 请求的示例代码:
// javascriptcn.com 代码示例 import { Application, Router } from 'https://deno.land/x/oak/mod.ts'; const app = new Application(); const router = new Router(); router .get('/users', (ctx) => { // 返回所有用户列表 }) .post('/users', async (ctx) => { const { name, email } = await ctx.request.body().value; // 在数据存储中创建一个新用户 }) .get('/users/:id', (ctx) => { const { id } = ctx.params; // 按 ID 检索单个用户信息 }) .put('/users/:id', async (ctx) => { const { id } = ctx.params; const { name, email } = await ctx.request.body().value; // 更新用户信息并返回更新后的数据 }) .delete('/users/:id', (ctx) => { const { id } = ctx.params; // 根据 ID 删除用户 }); app.use(router.routes()); await app.listen({ port: 8000 });
在示例代码中,我们使用了 .post()
方法来定义一个新的路由,它会处理 POST 请求。在路由相关的中间件函数中,我们从请求体中获取传递的数据,并在数据存储中创建一个新用户。然后,我们使用 .put()
方法来定义路由,以便更新用户信息。
总结
Deno 是一个很有前途的 JavaScript 开发平台,可以帮助我们更轻松、更安全地开发 Web 应用程序。在这篇文章中,我们学习了如何使用 Deno 和 Oak 框架创建 REST API,包括如何创建路由、处理 POST 请求等。希望这篇文章对你有所帮助,让你可以更方便地开发 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654af0df7d4982a6eb4e6e81