前提・実現したいこと
golang(gin)/vue/mysqlでSPAを作っている際、entityのインポートでエラーが出てしまいます。
パッケージ構成
golang_spa │ server.go │ ├─controllers │ └─controller │ productController.go │ ├─models │ ├─db │ │ productDb.go │ │ │ └─entity │ Product.go │ └─views ├─css │ product.css │ ├─js │ vueProduct.js │ └─static index.html
発生している問題・エラーメッセージ
{ "resource": "/Users/noay/program/golang/golang_spa/controllers/controller/productController.go", "owner": "_generated_diagnostic_collection_name_#0", "severity": 8, "message": "could not import ../../models/entity (no package for import ../../models/entity)", "source": "compiler", "startLineNumber": 11, "startColumn": 9, "endLineNumber": 11, "endColumn": 30 }
該当のソースコード
golang
1package controller 2 3import ( 4 // 文字列と基本データ型の変換パッケージ 5 strconv "strconv" 6 7 // Gin 8 "github.com/gin-gonic/gin" 9 10 // エンティティ(データベースのテーブルの行に対応) 11 entity "../../models/entity" 12 13 // DBアクセス用モジュール 14 db "../../models/db" 15) 16 17// 商品の購入状態を定義 18const ( 19 // NotPurchased は 未購入 20 NotPurchased = 0 21 22 // Purchased は 購入済 23 Purchased = 1 24) 25 26// FetchAllProducts は 全ての商品情報を取得する 27func FetchAllProducts(c *gin.Context) { 28 resultProducts := db.FindAllProducts() 29 30 // URLへのアクセスに対してJSONを返す 31 c.JSON(200, resultProducts) 32} 33 34// FindProduct は 指定したIDの商品情報を取得する 35func FindProduct(c *gin.Context) { 36 productIDStr := c.Query("productID") 37 38 productID, _ := strconv.Atoi(productIDStr) 39 40 resultProduct := db.FindProduct(productID) 41 42 // URLへのアクセスに対してJSONを返す 43 c.JSON(200, resultProduct) 44} 45 46// AddProduct は 商品をDBへ登録する 47func AddProduct(c *gin.Context) { 48 productName := c.PostForm("productName") 49 productMemo := c.PostForm("productMemo") 50 51 var product = entity.Product { 52 Name: productName, 53 Memo: productMemo, 54 State: NotPurchased, 55 } 56 57 db.InsertProduct(&product) 58} 59 60// ChangeStateProduct は 商品情報の状態を変更する 61func ChangeStateProduct(c *gin.Context) { 62 reqProductID := c.PostForm("productID") 63 reqProductState := c.PostForm("productState") 64 65 productID, _ := strconv.Atoi(reqProductID) 66 productState, _ := strconv.Atoi(reqProductState) 67 changeState := NotPurchased 68 69 // 商品状態が未購入の場合 70 if productState == NotPurchased { 71 changeState = Purchased 72 } else { 73 changeState = NotPurchased 74 } 75 76 db.UpdateStateProduct(productID, changeState) 77} 78 79// DeleteProduct は 商品情報をDBから削除する 80func DeleteProduct(c *gin.Context) { 81 productIDStr := c.PostForm("productID") 82 83 productID, _ := strconv.Atoi(productIDStr) 84 85 db.DeleteProduct(productID) 86} 87
試したこと
・タイプミスの確認
・ディレクトリ構成の確認
・go toolsのアップデート
・下記の確認
"go.toolsEnvVars":{ "GO111MODULE":"on", }
・コードの打ち直しやエディタの再起動などを試していると、他ディレクトリのentityのインポートー文にエラーが移ったりもしてよくわかりません????
補足情報(FW/ツールのバージョンなど)
・go version go1.15.2 darwin/amd64
・gin v1.6.3
・mysql Ver 8.0.21 for osx10.15 on x86_64 (Homebrew)
参考記事(ソースコード)
回答1件
あなたの回答
tips
プレビュー