typescript - NestJS 5 GraphQL 错误查询在解析器中定义,但不在模式中
问题描述
我收到类似于Query.products 中描述的错误的错误是在解析器中定义的,但不是在模式中定义的,但仅在我推送到 Heroku 时才出现。以下是详细信息:
// profile.graphql
type Profile {
id: ID!
version: String!
// ...
}
type Query {
profile(id: ID!): Profile
profiles: [Profile]
}
// profiles.resolver.ts
import { Args, Query, Resolver } from '@nestjs/graphql'
import { Profile } from './profile.entity'
@Resolver('Profile')
export class ProfileResolver {
@Query()
public async profile(@Args('id') id: number) {
return await Profile.findOne(id)
}
@Query()
public async profiles() {
return await Profile.find()
}
}
在本地,我可以跑步yarn start:dev
,而且效果很好。应用程序成功启动,我可以毫无问题地查询我的 GraphQL 端点。
当我将它推送到 Heroku 时,应用程序永远不会启动。
2019-04-03T15:42:38.102056+00:00 heroku[web.1]: Starting process with command `node dist/main.js`
2019-04-03T15:42:42.448420+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [NestFactory] Starting Nest application...
2019-04-03T15:42:42.499150+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] ConfigModule dependencies initialized +51ms
2019-04-03T15:42:42.499439+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] TypeormConfigModule dependencies initialized +0ms
2019-04-03T15:42:42.499805+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] TypeOrmModule dependencies initialized +0ms
2019-04-03T15:42:42.500251+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] ApiModule dependencies initialized +1ms
2019-04-03T15:42:42.500726+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] PassportModule dependencies initialized +0ms
2019-04-03T15:42:42.501201+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] DataModule dependencies initialized +1ms
2019-04-03T15:42:42.501651+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] GqlConfigModule dependencies initialized +0ms
2019-04-03T15:42:42.502039+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] EntitiesModule dependencies initialized +0ms
2019-04-03T15:42:42.502411+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] UsersModule dependencies initialized +0ms
2019-04-03T15:42:42.502819+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] HelpersModule dependencies initialized +0ms
2019-04-03T15:42:42.503246+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] ProfilesModule dependencies initialized +1ms
2019-04-03T15:42:42.503676+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] ResourceTypesModule dependencies initialized +0ms
2019-04-03T15:42:42.504107+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] SchemaMappingsModule dependencies initialized +1ms
2019-04-03T15:42:42.504580+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] SearchReplaceValuesModule dependencies initialized +0ms
2019-04-03T15:42:42.505006+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] XpathExpressionsModule dependencies initialized +0ms
2019-04-03T15:42:42.505581+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] JwtModule dependencies initialized +1ms
2019-04-03T15:42:42.550301+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] AppModule dependencies initialized +45ms
2019-04-03T15:42:42.553207+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] GraphQLModule dependencies initialized +3ms
2019-04-03T15:42:42.553861+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] AuthModule dependencies initialized +0ms
2019-04-03T15:42:42.674522+00:00 app[web.1]: query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = current_schema() AND "table_name" = 'migrations'
2019-04-03T15:42:42.690182+00:00 app[web.1]: query: SELECT * FROM "migrations" "migrations"
2019-04-03T15:42:42.693584+00:00 app[web.1]: No migrations are pending
2019-04-03T15:42:42.696083+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [InstanceLoader] TypeOrmCoreModule dependencies initialized +142ms
2019-04-03T15:42:42.734620+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [RoutesResolver] AppController {/}: +35ms
2019-04-03T15:42:42.735243+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [RouterExplorer] Mapped {/, GET} route +4ms
2019-04-03T15:42:42.735665+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [RoutesResolver] AuthController {/auth}: +0ms
2019-04-03T15:42:42.737212+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [RouterExplorer] Mapped {/register, POST} route +2ms
2019-04-03T15:42:42.739125+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [RouterExplorer] Mapped {/login, POST} route +0ms
2019-04-03T15:42:42.739137+00:00 app[web.1]: [Nest] 4 - 4/3/2019, 3:42:42 PM [RouterExplorer] Mapped {/refresh, POST} route +0ms
2019-04-03T15:42:42.849522+00:00 app[web.1]: (node:4) UnhandledPromiseRejectionWarning: Error: Query.profile defined in resolvers, but not in schema
为什么我在生产中而不是在开发中得到错误?发生了什么导致 GraphQL 架构没有注册我的profile
查询?
解决方案
local 和 prod 之间的区别适用于 Typescript。我发现.graphql
Typescript 没有复制任何文件,所以我copyfiles
在创建 dist 文件夹后解决了这个问题。
推荐阅读
- swift - Currying func 并在 Swift 4 中保留参数名称/标签
- python - 通过用列表替换单元格值来扩展熊猫数据框
- spring - 推送到 GIT 时如何加密或保护密钥?
- node.js - 如何使用node js仅在设备温度大于25或小于19时发送一次警告消息
- r - 用 TukeyHSD 做部分数据
- axios - axios:是否可以不从链接中硬编码 HTTPS 协议
- javascript - 如何在单个 html 页面上添加反应
- python - Python - 如何解析 xml 响应并将元素值存储在变量中?
- laravel - Laravel 不会在刷新时在“迁移”表中创建记录
- android - 如何定义导航操作的默认动画?