Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用服务帐户密钥访问Google数据存储_Node.js_Authentication_Google Cloud Platform_Google Cloud Datastore - Fatal编程技术网

Node.js 使用服务帐户密钥访问Google数据存储

Node.js 使用服务帐户密钥访问Google数据存储,node.js,authentication,google-cloud-platform,google-cloud-datastore,Node.js,Authentication,Google Cloud Platform,Google Cloud Datastore,我有一个GCD帐户,我在其中创建了一个项目和数据存储。我下载了此项目的服务帐户密钥并存储在本地PC中 现在,我有一个简单的节点应用程序在我的电脑上运行。这个节点应用程序有一个简单的查询,可以从上面创建的google数据存储中获取数据。我需要知道的是,我应该如何在我的节点应用程序中配置服务帐户密钥以获得对数据存储和相应实体的访问权限,因为我在尝试访问时会遇到类似这样的错误——“权限缺失或不足” 节点应用程序查询- // Adding a Sample Entity async function q

我有一个GCD帐户,我在其中创建了一个项目和数据存储。我下载了此项目的服务帐户密钥并存储在本地PC中

现在,我有一个简单的节点应用程序在我的电脑上运行。这个节点应用程序有一个简单的查询,可以从上面创建的google数据存储中获取数据。我需要知道的是,我应该如何在我的节点应用程序中配置服务帐户密钥以获得对数据存储和相应实体的访问权限,因为我在尝试访问时会遇到类似这样的错误——“权限缺失或不足”

节点应用程序查询-

// Adding a Sample Entity
async function quickStart() {
  // Your Google Cloud Platform project ID
  const projectId = 'XXX';

  // Creates a client
  const datastore = new Datastore({
    projectId: projectId,
  });

  // The kind for the new entity
  const kind = 'xxx';
  // The name/ID for the new entity
  const name = xxxx;
  // The Cloud Datastore key for the new entity
  const sampleKey = datastore.key([kind, name]);

  const [entity] = await datastore.get(sampleKey);
  console.log(entity);
  }
quickStart().catch(console.error);

您必须创建一个数据存储模拟器

请按照以下步骤操作

gcloud组件安装云数据存储模拟器

gcloud测试版模拟器数据存储启动

oiutput:[数据存储]开发应用服务器现在正在运行


更多详细信息:

要使用服务帐户凭据,请将客户端代码更改为:

// Creates a client
const datastore = new Datastore({
    projectId: projectId,
    keyFilename: '/path/to/keyfile.json'
});

我可以尝试此选项,但在前面,我错误地设置了“GOOGLE\u APPLICATION\u CREDENTIALS”路径变量。我的节点应用程序正在抛出错误-“错误:位于“C:\Masters LUC\spring-2019\interporation\service keys\xxx.json”的文件不存在,或者它不是一个文件。错误:enoint:没有这样的文件或目录,lstat'C:\Masters LUC\spring-2019\interporation\mean\mean course\”C:'at GoogleAuth.createError(C:\Masters LUC\spring-2019\interporation\mean\mean course\node\u modules\google auth library\build\src\auth\googleauth.js:426:16)"。我应该怎么做才能修复此错误??指定正确的路径。我会创建一个更短的目录,例如:
c:\google
,并将您的凭据文件放在那里。另一个stackoverflow链接上也有类似的错误-因此我删除并重新安装了npm包-google auth library。后来我使用您的建议/解决方案运行了我的节点应用程序。它成功了。非常感谢John