我有以下场景:我正在制作一个出版物查找工具,以便用户可以通过搜索字段和过滤器查找文档。现在我们的预算很小,因此所有数据都存储在一个 json 文件中(约 60 条记录)。如果项目成功,我们将拥有一个带有数据库和几千条记录的服务器。
我想使用breeze开发所有的查找解决方案,这样以后我就不必做很多修改。问题是我找不到有关直接查询 json 文件(没有服务器)的信息。
你认为这可能吗?
最佳答案
事实上,这是可能的。但我想不出像设置一个简单服务器那么简单的方法。这就像使用 Visual Studio 跟踪日志一样。也许你来自不同的环境?我想知道。即使在那里,使用某种可以返回 JSON 的 http API 来启动某些东西通常也很容易。
如果你只有 60 条记录,我猜这就是你试图匆忙站起来的原型(prototype)。您太着急了,甚至不想使用服务器……这有点奇怪,因为您需要一些东西来提供 HTML、CSS 和 JavaScript 文件,对吧?
你可以用node.js/express很容易地做到这一点;几乎与设置读取并返回 JSON 文件的快速路由一样简单。但这仍然涉及在某个地方运行的服务器(客户端自己的机器?),并且您必须学习一些基本的 Node.js
您完全可以使用 HTML 和 JS 脚本文件来完成此操作,除了文件系统之外无需任何服务器。
我想我应该从 writing a custom Breeze ajax adapter 开始这实际上是一个模拟:无论您要求什么,它都会返回完整的 JSON 数据。
您在应用程序启动时调用一次,将实体加载到 EntityManager 缓存中。然后使所有后续查询都是本地查询。您可以设置EntityManager默认查询策略,将所有查询默认转为本地查询。
无论你做什么,你都必须 define metadata描述 JSON 数据中的实体类型。我猜你只有一种类型,所以应该简单快捷。
您还必须做一些事情来告诉 Breeze 您正在查询哪种实体。在查询末尾添加 .toType('Foo');
可能就足够了。您可以随时深入研究JsonResultsAdapter
如果您需要堆栈较低级别的更高级的东西。
这一切都不难。但它们都不是 Breeze 101。您没有遵循我们所认为的典型应用程序开发路径。也许我们错过了一些东西。我很想知道人们是否能理解您的情况。
关于javascript - BreezeJS 以 json 文件作为数据源(无服务器解决方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17472792/