为了账号安全,请及时绑定邮箱和手机立即绑定

Go App Engine 项目的包结构

Go App Engine 项目的包结构

Go
慕尼黑的夜晚无繁华 2021-07-30 18:43:56
我一直在关注Google App Engine 的 Go 教程。根据教程,我应该创建一个根项目目录,所有与项目相关的源文件都应该进入这个目录。因此,我的工作区如下所示:/MyProject /router  router.go /items  items.go当我尝试像这样在 router.go 中引用 items.go 时:路由器import(    "items")func itemsHandler(writer http.ResponseWriter, request * http.Request){    anItem := items.Item{Id: 245,Name: "Chocolate",Price: 1.50};}该应用程序无法编译,因为items is undefined现在我对 Google App Engine 上的 Go 项目应该如何组织感到非常困惑。我想知道的是我的项目目录应该位于 Go SDK 的gopath目录中还是可以位于任何地方?教程没有说明这一点。Go App Engine 项目的结构是什么?如何导入源文件?
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您的问题的原因似乎是缺少src目录。.

  1. 是的,您的项目目录应该在GOPATH. Go 期望目录结构遵循描述工作区的文档中所述,所有包都位于src目录中。编译时,它会在 src 文件夹(或 pkg 如果已安装)下的 gopath 中查找包。虽然 App Engine 文档没有具体说明这一点,但我的理解是结构应该与src结构相匹配。

  2. 目录结构的一个例子是这样的:从 setting 开始GOPATH=/myproject。在 的目录中GOPATH,具有以下结构(以您的一些包为例)。

    /src
     /MyApp/app.yaml
     /MyApp/myappmain.go
     /items/items.go
     /router/router.go

当我构建时,我通过给它 MyApp 文件夹来运行 dev appserver dev_appserver ./MyApp

我已经通过放入log.Println("<pkg>")每个包init()func进行了测试,并且它们都只运行一次,因为有些人表示如果结构错误,这是一个问题。


查看完整回答
反对 回复 2021-08-02
  • 1 回答
  • 0 关注
  • 364 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信