Google Cloud Datastore - 无法读取属性' createInsecure'未定义的

时间:2017-12-18 00:25:49

标签: google-cloud-datastore grpc gcp

  

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或代码库所做的任何更改以返回新的数据存储区。

如果我收到此错误的原因,我们将不胜感激!

2 个答案:

答案 0 :(得分:0)

我找到的解决方案是在package.json文件中将DataStore版本设置为1.1.0:

"@google-cloud/datastore": "1.1.0"

答案 1 :(得分:0)

官方GitHub issue tracker有一个类似的解决方案:

  

我认为这条线让我们陷入困境。我相信这一点   返回一个grpc包装器,而不是一个实际的grpc实例。我想我们可以   不过这样做

var grpc = require('google-gax').grpc().grpc;

尝试在导致问题的行之前运行上一个命令。