Golang 处理数据库连接的“最佳实践”

2024-06-26

我有一个用 Go 编写的 Web 服务,目前我有一个全局包,我可以在任何地方导入它,其中包含与 MongoDB 的连接(通过 MGO),但我不得不说,这对我来说感觉非常恶心。在 Go 中维护与数据源的连接的最佳实践是什么?我来自 PHP 世界,因此是 Global :S


导入一个导出已初始化的包没有任何问题*mgo.Session对象作为包级变量或通过访问器/初始化程序。也许后者更能吸引经典的“OOP-ists”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang 处理数据库连接的“最佳实践” 的相关文章

  • 如何在C#中执行Go函数

    有没有办法从 C 执行 Go 函数 例如 对于 Python 我会使用 Ironpython 我知道我可以生成一个进程来执行 Go 脚本 但如果可能的话 我真的不想回退到这样的解决方案 Google 搜索没有显示任何内容 那么有什么方法可以
  • 在golang中获取TTFB(第一个字节的时间)值

    我正在尝试获取 TTFB 值和 Connect 值 c exec Command curl w Connect time connect TTFB time starttransfer Total time time total o dev
  • 如何从非英语字符串解析go中的月份

    我想将以下字符串解析为 go 中的日期 This item will be released on March 9 2014 我跟着this https stackoverflow com questions 14106541 go par
  • 为什么 Go 中只有 int 而没有 float?

    在 Go 中 有这样的类型int这可能相当于int32 or int64取决于系统架构 我可以声明一个整数变量而不用担心它的大小 var x int 为什么没有这个类型float 这相当于float32 or float64取决于我的系统架
  • 重新插入通道导致死锁

    我有稳定的入站 作业 流 将其输入到无缓冲通道中 我有一个for range循环来迭代项目并处理它们 如果处理该项目失败 我会将项目重新插入通道中 以便稍后重试 问题是当我将项目重新插入通道时 它陷入僵局 我明白为什么会发生这种情况 处理器
  • 编写每个处理程序中间件

    我希望从处理程序中提取一些重复的逻辑 并将其放入一些每个处理程序的中间件中 特别是 CSRF 检查 检查现有会话值 即身份验证或预览页面 等 我读了关于此的几篇文章 http justinas org writing http middle
  • golang mongodb (mgo) 没有插入文档

    我在使用 mgo 在 mongodb 中保存 golang 结构时遇到问题 type AN Track Log struct Id bson ObjectId bson id omitempty user session id str st
  • GORM中的一对多递归关系

    我需要有一个Organization与父级有关系 像这样的事情 type Organization struct gorm Model Parent Organization gorm ForeignKey ParentId Name st
  • 如何在 golang 中创建 .der 文件,与 openssl 相同

    openssl rsa in prevate pem outform DER pubout out public der 你可能会考虑像这样的图书馆google trillian https github com google trilli
  • 使用 StructScan 将 postgresql 数组获取到结构中

    测试数据 CREATE TABLE test id int data text INSERT INTO test id data VALUES 1 a b c 去代码吧 第一个 一个运行良好的 func main db sqlx Open
  • 如何通过map[string]interface{}递归迭代

    我遇到了一个问题 如何在附加条件下递归地迭代 map string interface 1 如果一个值是一个映射 递归调用该方法 2 如果一个值是一个数组 调用数组的方法 3 如果一个值不是一个映射 处理它 现在当方法尝试执行时doc th
  • 非本地包中的本地导入

    我知道应该避免本地进口 但在这种情况下有特殊情况需要 这是一个私人仓库 heroku buildpack 在go get 由于服务器上缺少私钥 与绝对 URL 一起使用时会出现此阶段 现在我得到这个错误local import in non
  • 如何退出执行延迟调用的 go 程序?

    我需要使用defer释放手动创建的分配C图书馆 但我还需要os Exit在某个时刻具有非 0 状态 棘手的部分是os Exit跳过任何延迟指令 package main import fmt import os func main defe
  • Golang 使用 gomail.v2 实现多个收件人

    我通过 gomail v2 发送电子邮件的唯一方法是在 for 循环中对每封电子邮件使用 Send 函数 但我需要向其他电子邮件地址显示已发送相同的电子邮件 for recipient range os Args 3 mail SetAdd
  • 使用结构解析 YAML

    我创建了以下 YAML 文件来提供用户需要提供的一些配置 Environments sys1 models app type app1 service type fds app type app2 service type era sys2
  • Go gin框架CORS

    我正在使用 Go gin 框架gin https github com gin gonic gin func CORSMiddleware gin HandlerFunc return func c gin Context c Writer
  • 如何修复解析 go.mod 模块将其路径声明为“x”,但需要为“y”

    我正在开发一个 go 项目 它依赖于original project 我现在想通过修改来更改该项目中的行为original project 所以我克隆了github com y original project to github com
  • Go 中的 Map 与 Switch 性能对比

    考虑这个基准 我们比较地图访问与切换 var code int32 0 10 100 100 0 10 0 10 100 14 1000 100 1000 0 0 10 100 1000 10 0 1000 12 var mapCode m
  • 指向切片和数组的指针

    我正在查看 Go 的堆包 https golang org pkg container heap https golang org pkg container heap 优先队列示例并遇到了这个 type PriorityQueue Ite
  • 如何实现链表

    我正在尝试在 Go 中实现排序链表 我很难想出一种通用的方法来使链表适用于任何可以与其自身进行比较的类型 由于它是一个排序列表 我希望 go 编译器 确保可以比较插入到链接列表中的值 例如 import linkedlist type Pe

随机推荐

  • git:推送单个提交

    假设我进行了多次提交 并希望挑选哪些提交到远程存储库 我该怎么做 在ascii中 C1 gt C2 gt C3 gt C4 我想推C2和C4 通过变基 重置 推送然后重置进行重新排序是否有效 C1 gt C2 gt C3 gt C4 gt
  • React-Native,滚动视图不滚动

    当我像下面的示例一样包装内容时 它会完美滚动 return
  • 从多个“输入:文件”中删除 FileList 项

    我有这个 DOM var id 0 input file upload 0 files id 这是第 0 个索引上的第一个文件 列出了文件属性并且一切正常 但是 我们如何从 DOM 中删除项目 object FileList 使用 Java
  • SQL查询3个表,无法得到所需的结果

    列出所有已售出的作品以及艺术家 订购日期和发货日期 SELECT title artist order date ship date FROM items orders orderline WHERE orders order id ord
  • 如何判断 Django 忽略 Accept-Language 标头的原因?

    我有一个 Django 应用程序 在 Google App Engine 上 我希望将其国际化 设置 py USE I18N True LANGUAGE CODE en Restrict supported languages and JS
  • 在 Android 的 Renderscript 中,使用 rs_script_call 结构来限制 rsForEach 调用期间操作的分配范围

    使用 Android 的 RenderScript 我尝试限制 rsForEach 调用期间操作的分配范围 根据文档 您可以通过传递 rs script call 结构来实现此目的 但每当我尝试此操作时 应用程序都会崩溃 rs script
  • 在奏鸣曲管理列表顶部显示订单总数

    根据特定条件进行筛选后 在页面顶部显示销售交易金额总额 如果页面不止一页 这应该是所有页面的总和 有人可以指导我如何做到这一点 我们按照以下方式做到了 效果非常好 Step 1 orderAdmin中添加了两个方法 public funct
  • 在 gridview 中单击鼠标选择一行

    我有一个问题 我想通过单击鼠标在 gridview 中选择一行 我的代码是这样的 protected void PeopleGridView RowDataBound object sender GridViewRowEventArgs e
  • 如何编写将布尔值返回到一个函数的函数

    我在这里发现了一个类似的问题 它问了几乎相同的问题 但又不完全一样 我的问题是如何将 a gt Bool 类型的函数列表组合成一个也是 a gt Bool 的函数 Ex compose a gt Bool gt a gt Bool comp
  • jquery metisMenu 无法在 ng-include 内工作

    我想用ng 包含渲染侧边栏template http startbootstrap com templates sb admin 2 模板要求jQuery metisMenu 插件对于下拉菜单 Issue 仅插件works当我加载以下脚本时
  • Angular 2 CLI - 部署

    我使用 Angular 2 CLI 构建了 Angular 2 应用程序 我现在的问题是我想将应用程序部署到本地服务器作为暂存环境以供其他人查看 大多数使用 Angular 2 CLI 的教程都展示了dist该文件夹似乎是在首次使用 CLI
  • 如何在不旋转的情况下改变Unity中VerticalLayoutGroup的扩展方向?

    我需要更改 VerticalLayoutGroup 的扩展方向 按照默认行为 该组将扩展到楼下 我想要的是 该小组将扩展到楼上 预期的行为在此描述Video https drive google com file d 0B6ktp79FP8
  • Nerddinner 教程中 C#yield 关键字的有趣用法

    通过教程 专业 ASP NET MVC 书呆子晚餐 我遇到了以下代码片段 public IEnumerable
  • iOS 应用程序和.NET 应用程序之间的通信?

    我有 2 个应用程序 一个是 iOS 应用程序 一个是 NET 应用程序 我希望我的 iOS 应用程序发送一条消息 调用 NET 应用程序的方法 将一些字符串发送到 NET 应用程序以保存到数据库 那么 我的 iOS 应用程序如何与 NET
  • Rust 中删除单链表中的节点

    我是 Rust 新手 想用 Rust 编写链表来获得乐趣 我对如何删除链表中的节点感到困惑 这是我的简单代码 derive Debug struct Node v usize next Option
  • 在数据库中有效存储商品位置(用于订购)

    设想 有一个用户拥有的电影数据库 电影显示在一个名为 我的电影 的页面上 电影可以按照用户想要的顺序显示 例如 位置 1 为 搏击俱乐部 位置 3 为 Drive 依此类推 显而易见的解决方案是存储每个项目的位置 例如 电影 ID 用户 I
  • 递归最长递增子序列的记忆

    我为最长递增子序列提出了简单的以下递归解决方案 但是 您可以帮助将记忆包含到这个递归解决方案中吗 public int findLIS int a int maxSoFar int item int count if item a leng
  • openmpi 忽略错误:无法识别 mca 接口

    今天早上 我升级了 gfortran 从 4 7 到 6 1 0 和 OpenMPI 从 1 10 到 2 0 1 编译器 我写了这个简单的程序 program main use mpi f08 implicit none
  • 如何学习 DirectShow 编程? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是一名 Net C 开发人员 我想开发有关视频 音频编解码器的媒体编程 从源捕获媒体等 我将使用Dir
  • Golang 处理数据库连接的“最佳实践”

    我有一个用 Go 编写的 Web 服务 目前我有一个全局包 我可以在任何地方导入它 其中包含与 MongoDB 的连接 通过 MGO 但我不得不说 这对我来说感觉非常恶心 在 Go 中维护与数据源的连接的最佳实践是什么 我来自 PHP 世界