GO存储数据返回EOF

2023-12-29

我是 golang 新手,我正在尝试构建 Rest api,到目前为止 GET 端点对我来说工作得很好,但是我在使用 POST 方法(创建用户)时遇到了困难:

这就是我的 User 结构的样子:

type User struct {
    ID        uint32    `gorm:"primary_key;auto_increment" json:"id"`
    Name      string    `json:"name" binding:"required"`
    Email     string    `json:"email" binding:"required"`
    Password  string    `json:"password" binding:"required"`
    CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP" json:"created_at"`
    UpdatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP" json:"updated_at"`
}

存储用户的Repo方法:

func CreateUser() (*models.User, error) {

    var input models.User

    user := models.User{Name: input.Name, Email: input.Email, Password: input.Password}

    result := Config.DB.Debug().Create(&user)
    if result.Error != nil {
        msg := result.Error
        return nil, msg
    }
    return &user, nil
}

并从控制器调用:

func CreateUser(c *gin.Context) {

    //var user models.User
    user := models.User{}
    user.Prepare()

    var input models.User

    err := c.BindJSON(&input)
    if err != nil {
        c.JSON(http.StatusBadRequest, gin.H{
            "Error": err.Error(), //this error is thrown
        })
        return
    }

    userData, err := repo.CreateUser()

    if err != nil {
        c.JSON(http.StatusBadRequest, gin.H{
            "error": err,
        })
        return

    }
    c.JSON(http.StatusOK, gin.H{
        "data": userData,
    })
}

我正在使用 gorm 与数据库交互,如果我对输入进行硬编码,例如

 User{Name: "Jinzhu", Email: "[email protected] /cdn-cgi/l/email-protection", Password: "pass1234"}

然后存储数据,但如果这些数据通过邮递员作为参数传递,那么我会收到此错误:

{"Error":"EOF"}

我已经敲了几个小时的头了,但仍然不明白错误出在哪里。


正如姆科普里瓦指出的那样

c.BindJSON正在返回EOF这意味着请求中没有发送任何内容

为了解决这个问题你需要json在请求正文中,如下所示:

{name: "Jinzhu", email: "[email protected] /cdn-cgi/l/email-protection", password: "pass1234"}

Example curl要求:

curl -X POST localhost:8080 -H 'Content-Type: application/json' --data '{name: "Jinzhu", email: "[email protected] /cdn-cgi/l/email-protection", password: "pass1234"}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GO存储数据返回EOF 的相关文章

随机推荐

  • Handlebars.js:像普通完整模板一样使用部分模板

    我有一个模板 我想将其用作部分模板 并通过 javascript 单独使用 如果您的模板是预编译的 您可以通过以下方式访问您的部分模板Handlebars partials partial name 以及通过模板从模板调用它们 gt par
  • DDD 中的 DAO、存储库和服务

    阅读了几篇文章后 我开始理解 DAO 和存储库之间的区别 但我发现自己在尝试理解存储库和服务之间的区别时遇到了麻烦 简而言之 在 OO 范式中 DAO 包含基本的类CRUD operations对于一个实体类 它具有获取或检索底层持久存储系
  • 将 .next() 与 takeUntil 一起使用时的参数

    我最近注意到升级我的 rxjs 版本后你不能使用 next method this ngUnsubscribe next 就像下面这样 export class TakeUntilComponent implements OnDestroy
  • 所有的java小程序都到哪里去了? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当java还很年轻的时候 人们对编写小程序感到兴奋 在一段时间内 它们很酷并且很受欢迎 现在 我再也见不到他们了 相反 我们有 flash ja
  • Angular JS $locationChangeStart 获取下一个 url 路由对象

    我正在尝试在我的角度应用程序上实现授权 当更改路线时 我想检查该路线是否已为用户授权 我尝试过 routeChangeStart但这并不能阻止该事件的发生 我当前的代码 scope on routeChangeStart function
  • ArrayAdapter getView() 方法如何工作?

    我想做一个ArrayAdapter显示图像和文本 如果可能的话我不想举例 我希望有人向我解释如何getView works Thanks getView 是适配器的主要部分 它返回View它将显示为您的列表 网格 图库 任何使用适配器项目的
  • 更新 Cocos2d 中的标签值

    我正在 cocos2d 中制作一个游戏 在更新分数时 旧分数值会出现在标签上 而新值会被覆盖 我正在使用以下代码来显示分数 LblScore CCLabel labelWithString NSString stringWithFormat
  • 利用Android 4.4 KitKat中的半透明状态栏

    当我发布适用于 Android 4 0 4 3 的笔记应用程序时 我使用了自定义操作栏颜色和自定义操作栏图标 而不是使用标准的浅色和深色操作栏 我想在 Android 4 4 上做到这一点 状态栏也将采用我在操作栏中使用的自定义颜色 FFD
  • Play Framework scala 如何创建临时变量

    嗨 所以我有一个 while 循环 for i lt 0 until consoles size Do something Add records to a column 但我想添加一个变量 并根据发生的情况将其添加到不同的组 例如 var
  • Spark Streaming现在支持Kafka 1.1.0吗?

    现在spark版本是2 3 我看到了maven中央存储库 https search maven org search 7Cga 7C1 7Cg 3A 22org apache spark 22 https search maven org
  • gnuplot:绘制来自标准输入的两个数据集

    我在尝试从 gnuplot 中的 stdin 绘制两个不同的数据集时遇到一些问题 这是我正在测试的命令 gnuplot persist lt
  • 在 NSArray 中搜索最近的数字

    有没有一种简单的方法可以搜索NSArray找到与用户输入数字最接近 或精确 如果存在 匹配的数字 假设我有一个像这样的数组 7 23 4 11 18 2 然后用户输入5 该程序按紧密度降序返回三个最接近的值 4 7 2 and 最重要的是给
  • 克服 java.net.MalformedURLException: 无协议异常

    我有一个属性文件 其中包含一个属性 指定包含温度数据集的 NOAA 网站的 URL 该属性包含一个 DATE REPLACE 令牌 因为当 NOAA 生成新的预报时 URL 每天都会变化 在我的属性文件中 我指定 WEATHER DATA
  • 如何告诉 maven-shade-plugin 保留签名?

    我正在使用 maven shade plugin 将两个单独的 jar 组合成一个组合的 jar 其中一个罐子有签名 而另一个则没有 如果我使用插件的默认配置 它将构建一个损坏的 jar 因为新清单缺少签名所需的摘要 我可以通过排除签名文件
  • ASP.NET 图表控件无法在生产服务器上运行

    我有一个严重依赖图表的应用程序 目前图表可以在 ASP Net 开发服务器中工作 但是当我尝试发布到我的服务器 Win 2008 Server R2 IIS 7 时 图表不显示 使用 Firebug 我可以看到对 ChartImg axd
  • 识别解析实例的依赖关系 - IoC (autofac)

    有没有办法确定哪个调用者 依赖项正在解析它所依赖的实例 这就是我的想法 public class A public A Console Write I am being resolved by 0 public class B public
  • Javascript 是一个合适的密码学平台吗?或者说,可以吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Webhooks 可以与 GitHub OAuth 应用程序一起使用吗?

    所以我一直在阅读 GitHub 开发人员文档 关于 webhooks 他们有以下声明 Webhooks 允许您构建或设置订阅 GitHub com 上某些事件的 GitHub 应用程序 当这些事件之一被触发时 我们将向 Webhook 的配
  • 在谷歌电子表格中将单元格格式设置为分钟:秒

    我希望记录我完成某个编程问题所需的时间数据 我正在使用谷歌电子表格来保持我的表现 面临的问题是 我希望细胞接受结果mm ss 但谷歌表正在将其转换为12 hr格式即hh mm ss 我怎样才能阻止这种情况发生 例如 1 30被转换为凌晨 1
  • GO存储数据返回EOF

    我是 golang 新手 我正在尝试构建 Rest api 到目前为止 GET 端点对我来说工作得很好 但是我在使用 POST 方法 创建用户 时遇到了困难 这就是我的 User 结构的样子 type User struct ID uint