Node.js中的Google数据存储.lookup没有返回任何结果
Google datastore.lookup in Node.js returns no results
我正试图通过google-api-nodejs-client
JS插件对我的谷歌数据存储数据进行简单查找。当我使用谷歌的"立即尝试"工具运行此查找时,它运行良好:
Request
POST https://www.googleapis.com/datastore/v1beta2/datasets/healthier-staging/lookup?key={YOUR_API_KEY}
{
"keys": [
{
"path": [
{
"kind": "Subscriber",
"name": "+1215XXXXXXX"
}
]
}
]
}
Response
200 OK
{
"found": [
{
"entity": {
"key": {
"partitionId": {
"datasetId": "s~healthier-staging"
},
"path": [
{
"kind": "Subscriber",
"name": "+1215XXXXXXX"
}
]
},
"properties": {
"phone": {
...
然而,当我在Node.js中运行完全相同的查询时,我没有得到任何结果——没有错误,但也没有结果。我能够进行身份验证、连接到数据存储、创建事务等,所以这似乎不是身份验证问题。这是我正在运行的节点代码:
this.datastore.lookup({
datasetId : 'healthier-staging',
keys: [{ path: [{ kind: 'Subscriber', name: '+1215XXXXXXX' }] }]
},
(function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result);
}).bind(this));
控制台输出为:
{ found: [], missing: [], deferred: [] }
注意:这与我每次运行datastore.runQuery时在Error中报告的问题有关:当我试图使用runQuery
而不是lookup
读取相同的数据时,必须设置Query.Query和Query.gql_Query字段之一,但我面临的问题不同。
谢谢。
密钥应该是post有效载荷的一部分:
this.datastore.lookup({
datasetId : 'healthier-staging',
resource: {
keys: [{ path: [{ kind: 'Subscriber', name: '+1215XXXXXXX' }] }]
}
},
(function(err, result) {
if (err) {
console.error(err);
return;
}
console.log(result);
}).bind(this));
您可以在此处找到API的数据存储部分的源。
相关文章:
- AJAX:$_GET不返回任何值
- document.styleSheets不返回任何内容
- 在解析对象.save()中;没有返回任何原因
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 为什么这个array.filter总是不返回任何内容
- IE8DOM转换XML,并且不从jQueryfind()或filter()返回任何内容
- 比较数组中的连续元素不会返回任何结果(javascript)
- WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值
- Ajax 不返回任何结果
- 我的 API 调用没有返回任何内容
- Javascript函数img.onload不返回任何内容(真或假)
- 为什么我的 sinon 假服务器不返回任何内容
- beforeSave导致查询不返回任何内容
- Ajax对PHP页面的调用总是不返回任何内容,即使PHP页面有回声
- 控制器的Helper函数不返回任何内容
- 函数不返回任何内容
- Breeze.js getEntities不返回任何实体
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- Dexie.exists()方法不返回任何内容(Dexie.js&IndexedDB)
- getElementsByClassName未返回任何内容