почему мой пример приложения gin не выдает ошибку, что goapi / mappings не найден - PullRequest
0 голосов
/ 17 апреля 2020

Я учусь Go и go -gin. Я пытаюсь получить простое приложение todo, работающее из учебника на Gin Go TODO tutoral Я следовал пошагово, мод init в каталоге root, установил gin, но когда я выполнял

  go build main.go

Я получил следующую ошибку.

  main.go:3:2: package goapi/mappings is not in GOROOT 
  (/usr/local/go/src/goapi/mappings)

Вот главная. go

    package main
    import (
        "goapi/mappings"
        _ "github.com/go-sql-driver/mysql"
    )
    func main() {
        mappings.CreateUrlMappings()
        // Listen and server on 0.0.0.0:8080
        mappings.Router.Run(":8080")
    }

1 Ответ

0 голосов
/ 17 апреля 2020

Кажется, что в примере показан код для нескольких файлов, некоторые из них в package mappings. Вы должны воссоздать весь пример (несколько файлов) в каталоге и запустить go build. Полный источник, кажется, здесь: https://github.com/eccosuprastyo/go/tree/master/gin-login


Вы говорите, что сделали go mod init, но , к сожалению, в этом примере не используются модули , и, кажется, предполагает, что пример находится в каталоге goapi. Таким образом, вам, возможно, придется установить GOPATH соответственно.

Вместо того, чтобы бороться с этим примером, я лично рекомендовал бы взглянуть на официальные репозитории - это правильный модуль Go и имеет инструкции по сборке .

Например, если я клонирую официальные примеры и запускаю basi c one:

$ git clone git@github.com:gin-gonic/examples.git
$ cd examples
$ go run basic/main.go
...
... // logging
...

В отдельном терминале:

$ curl localhost:8080/ping
pong

Отработано из коробки менее чем за минуту. Официальные примеры Gin используют модули (имеют go.mod), поэтому все зависимости / установки обрабатываются без проблем.

...