首页 > 数据库 >NodeJS 网关 — 第 2 部分:设置我们的数据库 (MongoDB)

NodeJS 网关 — 第 2 部分:设置我们的数据库 (MongoDB)

时间:2022-08-31 08:33:51浏览次数:112  
标签:网关 NodeJS 创建 数据库 应用程序 交易 MongoDB 我们

NodeJS 网关 — 第 2 部分:设置我们的数据库 (MongoDB)

Photo by 鲁拜图尔·阿扎德 on 不飞溅

NoSQL 数据库使您可以轻松地开始使用基本模式开发项目或应用程序,并且由于可以使用这种类型的数据库跳过一致性,随着变量和交互的增加,扩展变得容易,这就是我们使用 MongoDB 作为网关的原因。这也是因为 API 应用程序(请参阅下面有关我们正在构建的项目的链接)将是保存所有最终事务或交互数据(Postgres)的应用程序。

如果您对我们正在开发的内容感到困惑,请访问以下链接:

[

我如何使用 Javascript 构建支付网关。

在大学/学院学习后(大约 5 年前),我渴望建立一个项目,不仅是为了创造收入……

媒体网

](/@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 - Cank256/payie: 一个支付解决方案项目

一个支付解决方案项目。通过在 GitHub 上创建一个帐户,为 Cank256/payie 的开发做出贡献。

github.com

](https://github.com/Cank256/payie)

直到下一篇文章。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/2882/23233108

标签:网关,NodeJS,创建,数据库,应用程序,交易,MongoDB,我们
From: https://www.cnblogs.com/amboke/p/16641663.html

相关文章

  • Linux 安装mongodb
    按照以前的习惯找了很多文档,都不可靠。然后选择了官方文档,很简单明了的好用在Ubuntu上安装MongoDBCommunityEdition—MongoDBManual然后就ok了......
  • C#/.Net MongoDB 动态静态数据混合使用
    当要向数据库插入的数据结构是动态(未知)的且要默认追加特定列可参考该教程Eg:需要插入商品信息具体字段需要根据输入数据来决定同时还要默认添加创建时间、主键索......
  • 在NodeJS中安装babel
    安装babel安装babel打开终端,输入命令:npminstall--save-dev@babel/core@babel/cli@babel/preset-env@babel/node安装完毕之后,再次输入命令安装:npminstall--save@......
  • Modbus485转Profinet网关连接水表模块配置案例
     本案例控制的是Modbus485水表模块。系统主PLC选用西门子CPU,通过Modbus转Profinet网关采集水表模块通讯数据。 1、首先创建新项目文件; 2、导入GSD文件。将小疆......
  • mongodb基础操作
    前言本文主要针对的是mongoDB的基本操作,以及使用python语言对mongodb的接口调用。使用工具为pycharmerobot3T【已经被收购,推出了收费版。robot3T还是免费的】......
  • 开发那些事儿:EasyNTS上云网关平台内存泄露是什么原因?如何解决?
    EasyNTS上云网关包含组网运维、多协议视频流拉转推等功能,它可以解决内网设备上云、内网业务上云、直播上云、运维上云等上云需求,通过端口穿透技术,可以将内网的任何网络设备......
  • MongoDB的安装配置及客户端登陆
    一、CentOS7MongoDB的安装及配置:到官网下载安装包https://www.mongodb.com/try/download/enterprise上传并解压到服务器#mkdir-p/usr/local/mongodb#tar......
  • 1. mongodb基础:cursor.forEach使用
    varxtdb_db=connect("ip:port/实例名").getSisterDB("xtdb");varback_db=connect("ip:port/实例名").getSisterDB("xtdb_del_back");xtdb_db.auth("username","pass......
  • Mongodb安装教程
    1.下载Mongodb安装包:地址:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.2.21-signed.msi2.选择安装路径:  3.安装完之后找到对应的安装......
  • 智能网关助力零售连锁店经营提质增效
    依托物联网技术促进连锁零售行业的提质增效已经是行业性的趋势,通过全面而细致地采集门店的各种数据信息,诸如连锁门店内的设备能耗、设备状态、商品布局、客户行为、环境感......