问题标签 [falcor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graphql - Falcor 和 GraphQL 有什么区别?
GraphQL 由类型系统、查询语言和执行语义、静态验证和类型自省组成,每一个都概述如下。为了指导您了解这些组件中的每一个,我们编写了一个示例来说明 GraphQL 的各个部分。
- https://github.com/facebook/graphql
Falcor 允许您通过虚拟 JSON 图将所有远程数据源表示为单个域模型。无论数据在哪里,无论是在客户端的内存中还是通过服务器的网络,您都可以使用相同的方式进行编码。
- http://netflix.github.io/falcor/
Falcor 和 GraphQL(在 Relay 的上下文中)有什么区别?
social-networking - 使用 falcorjs 构建社交网络图
我可以使用 falcorjs 来构建社交网络图吗?我认为将所有数据都存储在 MySQL 数据库中,并构建中间件以从数据库中检索数据并以良好的格式显示它。我可以使用 falcorjs 吗?我的主要想法是计算、查找并提出建议,以将该已知/未知用户添加到自己的已知联系人组中。
falcor - 如何构建 falcor 路由器以获取所有可用的 ID?
我正在尝试使用 Falcor 来支持Guild Wars 2 API,并希望用它来显示游戏项目的详细信息。我对构建一个可以使用多个数据源来组合不同 API 的结果的路由器特别感兴趣。
问题是,激战 2 中的物品 ID不是连续的。这是一个例子:
所以我不能像这样在客户端上写路径,items[100..120].name
因为几乎可以肯定该列表中会有一堆漏洞。
我尝试向我的路由器添加一条路由,这样我就可以 request items
,但这会将它发送到客户端上的无限循环中。您可以在 GitHub 上看到该尝试。
关于构建这个的正确方法的任何指针?当我想得更多时,也许我想要item.id
呢?
javascript - Falcor 路由特定中间件
给定在服务器上运行的以下路由器类:
以及浏览器中的以下路径查询(我使用的是 falcor-http-datasource):
我得到了正确的数据:
我的问题是,在服务器上,是否有一种方法可以让我访问 falcor 通过线路发送回浏览器以响应此获取路由请求的实际结果?
我的用例是我想一起注销两条数据:
- 路由通过的 pathSet。
- falcor 通过网络发回的 json 结果。
我在想它可能看起来像这样:
只是要清楚。我知道我可以在客户端获得结果,但我想将它们通过管道传输到服务器的其他地方。
falcor - 为深度路径构建 falcor 路由器的有效方法?
我正在继续我的 falcor实验并享受其中的大部分内容,但我注意到了一些令人担忧的事情。
我正在从多个不同的 API 组装我的 JSONGraph,这正是我falcor-router
想要做的。但是,我似乎无法找到一种方法来干净地为不需要特殊处理的字段提供包罗万象的方法,而不会炸毁任何需要进行特殊处理的路线。
我的路线如下所示:
items[{integers:ids}].name
items[{integers:ids}][{keys:fields}]
无论我在通用中声明路线的顺序如何,总是会获胜。有没有比像这样构建我的路线的全核选项更好的方法来避免这种情况?
items[{integers:ids}].name
items[{integers:ids}]['fooga', 'wooga', 'booga', 'tooga', ... ]
这似乎很脆弱,如果来自后备服务器的数据发生变化,我不仅要更新我的应用程序代码,还要更新我的路由器。如果你有深度嵌套的对象,随着排列的数量迅速攀升,它也会变得一团糟。
node.js - 为什么 Falcor 的 setValue() 不适用于外部模型?
在本地Falcor模型上使用setValue()时,它按预期工作,但是当模型移动到服务器时,会出现“500(内部服务器错误)”。
下面的示例正常工作(脚本在浏览器中运行)
但是当将此设置更改为远程 Falcor 模型时,它会失败。(脚本在浏览器中运行)
使用以下节点脚本(脚本在服务器上运行):
控制台中的错误消息(何时setValue()
调用):
falcor - falcor:使用路径中的索引来设置项目值
考虑到数组可能已重新排序,更新数组中对象值的建议方法是什么?
我想知道使用基于索引的路径有多危险,当一个数组可能通过删除或重新排序进行更改时。我想知道使用对象会更好吗?
falcor - 为什么我不能在 Falcor 路由器响应中返回对象?
如果我使用 netflix/falcor 上的 README 中的示例,则可以:
return {path:['greeting'], value: 'Hello World'};
但是,如果我尝试将值更改为对象:
return {path:['greeting'], value: {hello: 'Hello World'}};
它似乎不起作用。我可能在做一些明显错误的事情,但我想得到一些澄清。
falcor - FalcorJS 路由器是否支持返回承诺?
在示例中(据我所知,也许我错过了路由器示例中的一些微妙之处),原始值是从 get 函数返回的。有没有办法在 get 函数中返回回调或承诺?最好的方法是什么?
现在,我猜我使用 Q.defer?
caching - Falcor:避免过时的客户端缓存
我正在考虑在我目前正在处理的应用程序项目中使用Falcor,我已经开始阅读文档,但仍有一个问题对我来说并不完全清楚。
让我们做这个例子。
在时间为零时,客户端A向 Falcor 模型执行请求,该模型依次从服务器检索所需的数据
DataSource
,并将其存储在客户端的缓存中。在时间一,客户端B执行的操作更改了相同的服务器数据。
在某个时间,两个客户端A对 Falcor 模型执行相同的请求,该模型找到一个缓存值并为现在过时的数据提供服务。
有没有办法在第一时间通知客户端A其 Falcor 缓存中的数据已过时,而应该向服务器执行新请求DataSource
?