DataStore版本1.2.0
这是我用来从函数中返回实时和测试版本的新数据存储区的代码:
const Datastore = require('@google-cloud/datastore')
...
let localDatastore = Datastore({
projectId: '<<replaced-project-id>>',
apiEndpoint: 'localhost:8081'
})
return isLive() ? Datastore() : localDatastore
我在Google App Engine和本地运行时收到此错误消息:
TypeError: Cannot read property 'createInsecure' of undefined
at new Datastore (<removed path>/node_modules/@google-cloud/datastore/src/index.js:400:45)
at Datastore (<removed path>/node_modules/@google-cloud/datastore/src/index.js:366:12)
这是它抱怨的路线:
this.options.sslCreds = grpc.credentials.createInsecure();
在删除之前它似乎正常工作,然后重新安装了我的node_modules。这些是我的依赖:
"@google-cloud/datastore": "^1.2.0",
"bluebird": "^3.4.7",
"joi": "^10.6.0",
"lodash": "^4.17.4",
"moment": "^2.17.1",
"shortid": "^2.2.6",
"ticketbuddy-library": "file:../ticketbuddy-library",
"uuid": "^3.0.1"
但是我的git历史记录没有显示对我的package.json或代码库进行任何更改以返回新的数据存储区。
任何帮助,为什么我得到这个错误将不胜感激!
我找到的解决方案是在package.json文件中将DataStore版本设置为1.1.0:
"@google-cloud/datastore": "1.1.0"
在官方GitHub issue tracker有一个解决方案,如下所示:
我认为这条线让我们陷入困境。我相信这会返回一个grpc包装器,而不是一个实际的grpc实例。我想我们可以做到这一点
var grpc = require('google-gax').grpc().grpc;
尝试在导致问题的行之前运行上一个命令。