Postgraphile - сообщение об ошибке "Необходимо указать корень запроса"
У нас есть база данных postgresql с данными, и мы экспериментируем с postgraphile в качестве API-интерфейса graphql. Мы сталкиваемся с ошибкой, которая заставляет нас чесать голову. сервер работает нормально, но мы получаем следующее:
postgraphile -c postgres://username:password@localhost:5432/my_db
PostGraphile server listening on port 5000
‣ Connected to Postgres instance postgres://localhost:5432/my_db
‣ Introspected Postgres schema(s) public
‣ GraphQL endpoint served at http://localhost:5000/graphql
‣ GraphiQL endpoint served at http://localhost:5000/graphiql
* * *
An error occurred, it might be okay but it doesn't look like the error we were expecting... run with envvar 'DEBUG="graphile-build:warn"' to view the error
An error occurred, it might be okay but it doesn't look like the error we were expecting... run with envvar 'DEBUG="graphile-build:warn"' to view the error
Error: Query root type must be provided.
at assertValidSchema (C:\Users\user\AppData\Roaming\npm\node_modules\postgraphile\node_modules\graphql\type\validate.js:78:11)
at Object.validate (C:\Users\user\AppData\Roaming\npm\node_modules\postgraphile\node_modules\graphql\validation\validate.js:61:35)
at parseQuery (C:\Users\user\AppData\Roaming\npm\node_modules\postgraphile\build\postgraphile\http\createPostGraphileHttpRequestHandler.js:208:48)
at Promise.all.paramsList.map (C:\Users\user\AppData\Roaming\npm\node_modules\postgraphile\build\postgraphile\http\createPostGraphileHttpRequestHandler.js:469:63)
at Array.map (<anonymous>)
at requestHandler (C:\Users\user\AppData\Roaming\npm\node_modules\postgraphile\build\postgraphile\http\createPostGraphileHttpRequestHandler.js:435:52)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
и когда мы переходим к localhost:500/graphiql, в проводнике документации "нет доступной схемы".
является корнем запроса public
схема? или чего нам не хватает?
1 ответ
Более новые версии PostGraphile содержат гораздо более полезные сообщения об ошибках, часто в том числе предлагаемое решение. Ошибки "Произошла ошибка", подобные вышеприведенным, теперь также содержат предварительный просмотр основной ошибки, которая помогает в диагностике.
Здесь есть инструкции о том, как установить DEBUG
переменная среды здесь: https://www.graphile.org/postgraphile/debugging/
Вот как вы можете сделать это в Linux, MacOS или Windows:
# Bash (Linux, macOS, etc)
export DEBUG="graphile-build:warn" postgraphile -c postgres://username:password@localhost:5432/my_db
# Windows Console
set DEBUG=graphile-build:warn & postgraphile -c postgres://username:password@localhost:5432/my_db
# Windows PowerShell
$env:DEBUG = "graphile-build:warn"; postgraphile -c postgres://username:password@localhost:5432/my_db