[英]Access google cloud datastore keys on the frontend
我在节点/表达式上编写了一个get查询,以获取一种类型的所有实体。 get请求成功,我看到所有属性都以json的形式返回,可以在前端角度站点上对其进行监视。 但是我看不到NAME / ID属性,它基本上是与实体相关的键。 我需要实体的名称/ ID或键才能执行其他操作。 如何提取要在前端UI / html上访问的密钥?
获取我使用过的查询-
app.get("/api/venues/", (req, res, next) => {
const query = datastore
.createQuery('venue');
query.run().then((venuesList) => {
// do something
})
运行节点后,我得到的结果是-
[ { property1: '<property-value-1>',
property2: '<property-value-2>',
property3: '<property-value-3>',
property4: '<property-value-4>',
[Symbol(KEY)]:
Key {
namespace: undefined,
id: <'id-value'>,
kind: 'venue',
path: [Getter] } } ]
我无法访问或看到上面获得的“密钥”在前端获得结果。
似乎在堆栈溢出时很少有Google Cloud Datastore查询的贡献者。 无论如何...我做了很多研究,并提出了以下问题解决方案,它正在工作。
通过节点的获取请求将从数据存储中获取所有实体,并且所有这些实体及其键将在节点接口上可见。 但是,如果我们将相同的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
}
);
})
})
我希望这会对社区中的其他人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.