我正在构建一个带有 Go 后端 + Polymer 前端的 Google App Engine 应用程序。因此,我使用 dispatch.yaml 文件同时提供两者。
我面临的问题是当我重新启动计算机时数据存储是空的。我已经在 OSX 10.9.5 和 10.10.4 上测试过了。两者在系统重新启动时都表现出相同的响应。然而,Windows 7 似乎保留了数据。
文档建议数据应该保持不变,因为我没有明确调用清除。它不是。我尝试使用以下方法自己设置数据存储位置:
dev_appserver.py --datastore_path=~/go_apps/data ~/go_apps/my_app
我收到此错误:
google.appengine.tools.devappserver2.errors.AppConfigNotFoundError: "/Users/anthony/go_apps/my_app is a directory but does not contain app.yaml or app.yml
显然,因为我使用的是 dispatch.yaml 文件,所以不会。因此,由于backend处理数据的 确实有一个app.yaml文件,我尝试将其设置在那里。我使用这个命令:
dev_appserver.py --datastore_path=~/go_apps/data ~/go_apps/my_app/backend
这似乎也不起作用,因为我收到此错误:
sqlite3.OperationalError: unable to open database file
好的?嗯,现在不知道该转向哪里。根据我从其他帖子中收集到的信息,该数据是临时存储的。但是,我似乎无法为数据设置自定义的非临时位置。所以,现在我每次重新启动时都会填充一个数据存储,这看起来很荒谬。
* 编辑 *
我尝试了以下操作,它似乎尝试启动应用程序,并datastore.db在正确的位置创建一个文件:
dev_appserver.py --datastore_path ~/go_apps/my_app/data/datastore.db ~/go_apps/my_app/dispatch.yaml ~/go_apps/my_app/backend/app.yaml ~/go_apps/my_app/frontend/app.yaml
但是,我现在收到一个奇怪的错误:
/var/folders/04/3hxnpxc15wj2k4v40lkdncd00000gn/T/tmpkcQYnFappengine-go-bin/backend.go:13: can't find import: "github.com/gorilla/mux"
Go 会临时构建到该文件夹吗?该导入绝对可用,并且始终构建良好的调用goapp serve.
这是我的导入的样子 backend.go
import (
//standard library
"fmt"
"net/http"
"time"
"log"
//third party
"github.com/gorilla/mux"
"github.com/gorilla/securecookie"
"github.com/dgrijalva/jwt-go"
"golang.org/x/crypto/bcrypt"
//my imports
"github.com/section14/go_polymer_comm_pkg/controller"
)
相关分类