Relay Modern-啥是database.js,有必要吗?

Posted

技术标签:

【中文标题】Relay Modern-啥是database.js,有必要吗?【英文标题】:Relay Modern- what is database.js and is it necessary?Relay Modern-什么是database.js,有必要吗? 【发布时间】:2017-11-12 02:13:34 【问题描述】:

在 Relay Modern 示例应用程序 todo-modern 中有一个名为 database.js 的文件。所有 Relay Modern 应用程序都需要此文件吗?如果没有,你如何定义nodeInterface, nodeField 没有它?它似乎有所有这些我不明白的getter函数。

我发现没有足够的 Relay Modern 文档或示例。真是令人沮丧。

【问题讨论】:

文件database.js 是模拟数据。查看本教程,了解 Relay Modern 的详细分步指南:graph.cool/docs/tutorials/…。 【参考方案1】:

这在文档中没有明确说明,但 schema.js 和 database.js 是为了模拟运行 GraphQL 的远程服务器服务。我已经有一个运行 GraphQL 服务器的 php 后端,所以我必须这样做:

    全局安装 npm 包get-graphql-schema。 在我的 package.json 中添加一个 npm 脚本:"generate-graphql": "get-graphql-schema http://0.0.0.0:8000/graphql > ./App/Data/schema.graphql"。显然,将本地端点更改为服务器的 graphql 端点,并将输出更改为您希望架构存在的位置 运行npm run generate-graphql 生成架构 添加一个 npm 脚本以使用新模式来构建必要的生成文件:"relay:build": "relay-compiler --src ./App --schema ./App/Data/schema.graphql"。同样,根据需要更改端点。 运行这个新脚本。你应该很高兴!

【讨论】:

以上是关于Relay Modern-啥是database.js,有必要吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TypeScript 中使用 Relay Modern(babel-plugin-relay 和 relay-compiler)?

如何在 Relay Modern 中取消订阅

如何在 Relay Modern 中强制获取

如何使用 Relay Modern 突变进行文件上传?

Relay Modern 节点不包含片段属性

在 Relay Modern 中设置多个网络层