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)?