使用MVC模式和MySQL,用Deno建立一个REST API
利用新的简单、现代和快速的JavaScript/TypeScript运行时间
前提条件
我喜欢Deno的一点是,它不需要你安装那么多的依赖项就可以开始使用。你只需要在你的机器上安装Deno。要做到这一点,你可以按照这里的说明进行。我建议你只需使用PowerShell(Windows) 来安装它。
如你所知,我们将使用MVC模式来构建REST API。如果你不熟悉MVC模式,我建议你 读一下这篇文章,了解一下MVC的情况。基本上,MVC代表模型-视图-控制器,这就是我们要用来构建REST API的结构,但由于我们只是要构建没有任何用户界面(UI)的API,所以我们要把视图排除在外。
我们项目的文件夹结构看起来是这样的:
- data- controllers- routes
Data Controllers 是我们的控制器,而 是路由器,负责将进入的浏览器请求映射到指定的MVC控制器动作。routes
构建REST API(编码时间) 💻
现在你知道了先决条件和结构,是时候开始构建应用程序了。你应该做的第一件事是在你的数据库上做一个新的表,哦,对了,我们要做众所周知的to-dos应用(因为为什么不呢)。我们将使用MySQL作为我们的RDBMS,这是表的模式。
之后,我们要制作数据库配置文件,像这样。
你可以看到,我使用environment 来存储所有的数据库连接字符串。你可以很容易地制作.env 文件,并在其中填入你需要的环境变量。
接下来,我们先做接口,或者我想叫它数据传输对象(抱歉,我以前用.NET编码)。我们的接口看起来会是这样的。
只是一个简单的三个属性。在我们有了接口之后,现在是时候从底层开始建立第一道门了,也就是存储库,也就是模型,也就是任何与数据库有直接交互的东西,也就是你可以称它为写数据库查询的地方。
正如你所看到的,我导入了我们之前做的db.ts 和接口。在这个资源库中,有五个函数被定义为通过SQL查询来完成我们的CRUD应用。你可以在这里看到Deno MySQL驱动的完整文档。
在我们定义了资源库/数据文件夹后,现在我们要做一个控制器,负责控制应用逻辑,并作为HTTPS请求和数据门之间的协调。我们的控制器将看起来像这样。
在这一点上,你实际上可以看到MVC结构是如何在这个应用程序上工作的,对吗?这很简单,因为接下来我们要做的是制作路由,也就是来自用户的每个请求的前门。
每一个路由都是由它自己的方法来服务的。我们有一些路由,包括我特意在这个文件上添加的一个主路由。我们几乎已经完成了一切,除了最后一件事--运行整个系统/服务器的主文件。
我们的主文件将看起来像这样。
现在,我们已经有了运行服务器所需的所有成分 ,你可以到终端用这个命令运行应用程序。
deno run --allow-read --allow-env --allow-net server.ts
不要忘记打开你的本地SQL服务器。之后,你可以试着点击我们用Postman制作的端点。
部署
不言而喻,Deno是一个快速而简单的JS/TS运行时,可以构建一个服务器应用程序。
不仅如此,当我们谈论部署的事情时,Deno也会派上用场,因为Deno使用dash.deno.com提供了CI/CD部署系统。
如果你熟悉Netlify、Vercel、Heroku等平台,那么你在使用Deno Deploy时就不会感到任何麻烦。
一些改进,也许
我已经包含了一个测试文件,其中包含每个控制器/终端的单元测试。正如你所知,这个项目只是我周末学习的一部分,肯定有很多小错误,或者是我使用的原则模式的错误实现,所以我不会推荐你在生产基地使用这个项目,因为你需要真正考虑到应用程序的安全性和可靠性问题。