小编Ull*_*kut的帖子

golang 中与 gorm 的一对多关系不起作用

我有两张桌子:

type Person struct {
    ID int
    FirstName string
    LastName string
    Functions []Function
}

type Function struct {
    gorm.Model
    Info string
    Person Person
}
Run Code Online (Sandbox Code Playgroud)

我创建这样的表:

db.AutoMigrate(&models.Person{}, &models.Function{})
Run Code Online (Sandbox Code Playgroud)

然后我初始化数据库:

user := models.Person{
    FirstName: "Isa",
    LastName:  "istcool",
    Functions: []models.Function{{Info: "Trainer"}, {Info: "CEO"}},
}
db.Create(&user)
Run Code Online (Sandbox Code Playgroud)

现在的问题是我的Person表只得到了FirstnameLastname列,而我的Function表只得到了Info列。但是当我开始GET请求时,我得到的列函数始终为空。

这是我的 GET 请求和我的数据库的屏幕截图

要查看代码,请访问我的GitHub 存储库

mysql rest go go-gorm

6
推荐指数
1
解决办法
4328
查看次数

具有公共访问权限的AWS Go SDK S3上传

我一直在尝试通过公共访问将对象上传到S3,但是我无法做到这一点。

我收到此错误: InvalidArgument: Argument format not recognized status code: 400

这是我的代码:

bucketName := "test-bucket"
key2 := "test.zip"
upParams := &s3manager.UploadInput{
    Bucket: &bucketName,
    Key:    &key2,
    Body:   response.Body,
    GrantRead: aws.String("uri:http://acs.amazonaws.com/groups/global/AllUsers"),
}

sess := session.Must(session.NewSession())

uploader := s3manager.NewUploader(sess)

_, err = uploader.Upload(upParams)
Run Code Online (Sandbox Code Playgroud)

amazon-s3 go aws-sdk

4
推荐指数
1
解决办法
892
查看次数

由于先前的测试用例失败而引发的断言异常

我想不出更好的标题。

在下面的代码中,如果rollBackLoggernil,第一个测试用例将失败,但所有其他测试用例将引发异常。

有没有办法避免这种情况,除了使用 if语句?

我相信这是单元测试非常常见的情况,应该有一些功能assert或其他方式来避免这种情况。

assert.NotNil(rollbackLogger)
assert.Equal("Action", rollBackLogger[0].Action)
assert.Equal("random path", rollBackLogger[0].FilePath)
Run Code Online (Sandbox Code Playgroud)

testing junit unit-testing assert go

3
推荐指数
1
解决办法
507
查看次数

如何使用 gin 作为服务器编写 prometheus 导出器指标

这是 prometheus golang-client 的官方例子吗?

package main

import (
    "log"
    "net/http"

    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{
        Name: "cpu_temperature_celsius",
        Help: "Current temperature of the CPU.",
    })


func init() {
    // Metrics have to be registered to be exposed:
    prometheus.MustRegister(cpuTemp)
}

func main() {
    cpuTemp.Set(65.3)

    // The Handler function provides a default handler to expose metrics
    // via an HTTP server. "/metrics" is the usual endpoint for that.
    http.Handle("/metrics", promhttp.Handler())
    log.Fatal(http.ListenAndServe(":8080", nil))
}
Run Code Online (Sandbox Code Playgroud)

在此代码中,http 服务器使用该promhttp库。

使用gin框架时如何修改指标处理程序?我没有在文档中 …

go go-gin prometheus

2
推荐指数
2
解决办法
1370
查看次数

标签 统计

go ×4

amazon-s3 ×1

assert ×1

aws-sdk ×1

go-gin ×1

go-gorm ×1

junit ×1

mysql ×1

prometheus ×1

rest ×1

testing ×1

unit-testing ×1