如何解决将Parse Server从v3升级到v4会触发错误“ GraphQL:必须提供源代码”
我将3.10.x版中的ParseServer(https://parseplatform.org)与附带的GraphQL端点一起使用。我使用apollo-link
从我的云代码中进行了一些查询,因此安装了graphql
模块(以及使用parse-server
的{{1}}的依赖项)。我已指定GraphQL依赖项的版本以匹配apollo-server
(v14.5.8)使用的版本。
在此配置中,一切正常。
我现在将parse-server
升级到最新版本4.3.x,并更新parse-server
以继续匹配graphql
使用的版本:v15.1.0。
服务器现在在启动时崩溃,错误为:parse-server
。
- 因此,我尝试删除
Must define Source. Received undefined.
依赖项,但仍然收到错误消息。 - 我已将
graphql
降级到先前的v14.5.8版本,由于使用了graphql
的两个不同实例,因此又出现了另一个错误。 - 我检查了跨依赖项仅使用了一个版本的GraphQL。
我检查了发生错误时加载的graphql
模块:版本v15.1.0中的graphql
。
有人对此错误及其修复方法有线索吗?
如果需要更多详细信息,请询问!
谢谢
经历
编辑#1
Parse Server由./node_modules/graphql
包裹在群集中启动。
解析服务器初始化
throng
解析服务器配置
const restAPI = new ParseServer(config)
const graphQL = new ParseGraphQLServer(restAPI,{
graphQLPath: process.env.GRAPHQL_MOUNT || "/graphql",playgroundPath: "/playground",})
// Serve the Parse API on the /parse URL prefix
app.use(process.env.PARSE_MOUNT,restAPI.app)
graphQL.applyGraphQL(app)
完成错误堆栈
{
appName: process.env.PARSE_APP_NAME,databaseURI: process.env.DATABASE_URI,databaseOptions: {
maxTimeMS: Number(process.env.DB_QUERY_MAX_TIME) || 30000,},cloud: `${__dirname}${cloudCode}`,appId: process.env.PARSE_APP_ID,masterKey: process.env.PARSE_MASTER_KEY,clientKey: process.env.PARSE_CLIENT_KEY,javascriptKey: process.env.PARSE_JAVASCRIPT_KEY,restAPIKey: process.env.PARSE_REST_KEY,serverURL: serverURL,publicServerURL: serverURL,allowClientClassCreation: process.env.ALLOW_CLIENT_CLASS_CREATION === 'true',filesAdapter: new S3Adapter(
process.env.S3_BUCKET,{
bucketPrefix: process.env.S3_BUCKET_PREFIX,directAccess: true
}),verifyUserEmails: false,emailAdapter: MailAdapter(),cacheAdapter: process.env.REDIS_PARSE_CACHE_URL
? new RedisCacheAdapter({ url: process.env.REDIS_PARSE_CACHE_URL })
: null,liveQuery: {
classNames: ["SomeClass"],redisURL: process.env.REDIS_LIVE_QUERIES_SERVER_URL
},}
解决方法
经过数周的深入研究,建议我尝试使用npm
而不是yarn
。因此,我尝试了一下,整个过程再次正常运行。
问题出在锁定文件中:将其删除后,甚至返回yarn
,问题已得到解决。
因此,在这种情况下,请尝试删除node_modules
文件夹并锁定文件,然后重新运行yarn
或npm install
。这应该可以解决问题。
感谢Parse核心贡献者davimacedo帮助我解决了这个问题!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。