我使用下面的节点查询来获取类型的所有属性-“地点”
app.get("/api/venues/", (req, res, next) => {
const query = datastore
.createQuery('venue');
query.run().then((venuesList) => {
/*do something*/
})
})
但是,如果我在节点中运行上述get查询,我不会找回密钥。 还有文档说,我们可以使用如下查询来获得数据存储中所有类型的键-
const query = datastore
.createQuery()
.select('__key__')
.limit(1);
但是如何将这两个属性关联起来以获取所有属性,包括查询中给定类型的键?
答案 0 :(得分:0)
我做了很多研究,并为我的问题提出了以下解决方案,并且可以正常工作。
通过节点的获取请求将从数据存储中获取所有实体,并且所有这些实体及其键将在节点接口上可见。但是,即使我们将相同的json(带有实体)传递给UI,实体的键也不会在UI(我正在使用的Angular)上可见。
因此,我对从数据存储区获取的json进行了修改。我分别提取了实体的键,并在同一json中创建了一个新属性,然后将此修改后的json传递给UI。所以现在,我能够通过我在节点上创建的别名属性来访问实体的键。检查下面的修改后的代码-
app.get("/api/venues/", (req, res, next) => {
const query = datastore
.createQuery('venue');
query.run().then(([venuesList]) => {
venuesList.forEach(venue => { venue['venueKey'] = venue[datastore.KEY] });
//venuesList.forEach(venue => console.log(venue));
res.status(200).json(
{
message: "Request was processed successfully!",
venues: venuesList
}
);
})
})