Photo by 鲁拜图尔·阿扎德 on 不飞溅
NoSQL 数据库使您可以轻松地开始使用基本模式开发项目或应用程序,并且由于可以使用这种类型的数据库跳过一致性,随着变量和交互的增加,扩展变得容易,这就是我们使用 MongoDB 作为网关的原因。这也是因为 API 应用程序(请参阅下面有关我们正在构建的项目的链接)将是保存所有最终事务或交互数据(Postgres)的应用程序。
如果您对我们正在开发的内容感到困惑,请访问以下链接:
[
媒体网
](/@nkunzecaleb/how-i-build-a-payment-gateway-using-javascript-2e4f3e52b7cd)
在上一篇文章(第 1 部分)中,我们能够添加 mongodb
和猫鼬 npm
模块到我们的网关。在这篇文章中,我们将专注于创建集合的模式,从我们的数据库集合中保存、检索、更新和删除数据。
如果您想知道集合是什么,可以将它们与 SQL 数据库中的表或关系相关联。由于 NoSQL 数据库是非表格数据库,它由类似 JSON 的文档类型的数据库组成,其中 MongoDB 是其中的一部分。因此,记录(在 SQL 数据库中)或条目是 NoSQL 中的文档,而集合是一组文档(记录)。我希望这不会令人困惑。你在这里查看更广泛的解释 NoSQL 解释 , 技术目标 和 NoSQL 数据库 .
我们将研究为一个基本的演示内部(应用程序)传输事务插入数据 transaction_id
交易类型
sender_account_id
收件人帐户 ID
数量
货币
交易记录
然后 约会时间
.
首先,我们将首先创建一个模式,简单来说就是要保存在数据库中的数据的格式。让我们继续创建一个模型文件 交易模型.ts
为我们的交易数据添加以下代码。
从代码中,我们看到除了可选的交易记录之外,所有输入都是必需的。定义架构后 事务模式
我们创建 交易模型
如第 13 行,它将用于搜索、保存和检索交易相关数据。请记住,这是基本的,我们可以继续添加更多的值或变量。
让我们继续测试我们的模型,看看我们是否可以从数据库中保存和检索数据。为此,我们将创建 3 条路由来保存和检索我们的交易数据。
发布 /api/事务
创建交易 获取 /api/transaction/:id
获取单笔交易的交易数据 获取 /api/事务
获取所有交易这部分更多是关于数据库的,所以我们不会深入探讨路线。现在我们可以有基本的路由来测试我们的模式。为此,我们将添加一个 正文解析器
该模块将帮助我们制作一个中间件,将我们的请求数据转换为 JSON 格式进行存储。使用下面的命令。
npm install body-parser --save
现在我们可以将下面的代码添加到我们的 应用程序.ts
文件
const bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true }));
这样我们就有了 应用程序.ts
看起来像这样
然后我们创建一个 交易
路由文件 交易.ts
在路线文件夹中。最后我们添加下面的代码:
你可以跑 npm 运行开始
构建并启动我们的服务器。
从上面的代码保存通过调用创建的事务 猫鼬开始()
对收到的请求正文数据执行功能,并在保存过程成功与否时向客户端发送响应。请参阅下面来自邮递员的屏幕截图。
The POST request for saving the transaction details (Successful)
为了获得一笔交易,我们通过 ID
路由中的参数,用于搜索类似于 交易标识
它是在事务创建期间生成的。请参阅下面来自邮递员的屏幕截图。
The GET request to retrieve a single transaction (Successful)
然后我们也可以通过在 寻找()
猫鼬的功能。请参阅下面来自邮递员的屏幕截图。
The GET request to retrieve all transactions (Successful)
在邮递员中,失败的操作将如下所示。
A failed GET request for retrieval of a single transaction.
一路走来做得很好,我们已经看到了我们将如何与数据库交互,在其他部分我们将查看从数据库中修改和删除我们的数据。
我想再次感谢您完成这篇文章,当我遍历创建支付网关的旅程时,您可以为更多这样的帖子鼓掌甚至关注我。请随时纠正我出错的地方。学习是要走的路。
接下来我们将研究路由、中间件和控制器。我尝试使这些尽可能短,以避免一口气读完一本完整的教科书。
如果您想查看完成的代码(到此阶段为止),您可以使用下面的链接从 repo 中获取它。
[
github.com
](https://github.com/Cank256/payie)
直到下一篇文章。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/2882/23233108