Не удается связать базу данных с постграфом
У меня есть база данных с именем pgadmin "mydatabase", а имя таблицы - "mytable". Это работает в http://127.0.0.1:33859/browser/
, Я пытался использовать postgraphile, чтобы соединиться с ним. Вот код
const express = require("express");
const { postgraphile } = require("postgraphile");
const app = express();
app.use(postgraphile("postgres://postgres:postgres@localhost:33859/mydatabase -s public"));
app.listen(3000);
Имя моего суперпользователя - postgres, а пароль - postgres. База данных принадлежит пользователю с именем "test" с паролем "1234". После запуска скрипта с узлом на терминале ошибки нет. Когда я нажимаю на порт 3000, он показывает Cannot GET /
, Любая помощь в этом?
1 ответ
Поскольку предполагается, что промежуточное программное обеспечение PostGraphile будет смонтировано вместе с остальной частью вашего приложения Node.js, оно не берет корневой URL-адрес и вместо этого делает конечную точку GraphQL доступной в /graphql
по умолчанию. Чтобы изменить это есть graphqlRoute
а также graphiqlRoute
параметры, задокументированные на странице использования библиотеки.
Вот несколько хороших вариантов для начала:
const isDev = process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "staging";
const DB = "postgres://postgres:postgres@localhost:33859/mydatabase -s public";
const SCHEMA = "public";
app.use(postgraphile(DB, SCHEMA, {
// Enable the GraphiQL IDE in development
graphiql: isDev,
// Add some enhancements (headers, formatting, etc)
enhanceGraphiql: isDev,
// Makes GraphiQL available at http://localhost:3000/ rather than /graphiql
graphiqlRoute: '/',
// Watch DB for changes
watchPg: isDev,
// Use JSON objects rather than strings
dynamicJson: true,
// Debugging
showErrorStack: isDev,
extendedErrors:
isDev
? [
"errcode",
"severity",
"detail",
"hint",
"positon",
"internalPosition",
"internalQuery",
"where",
"schema",
"table",
"column",
"dataType",
"constraint",
"file",
"line",
"routine",
]
: ["errcode"],
// For use with e.g. apollo-link-batch-http
enableQueryBatching: true,
}));
Вы можете найти файл bootstrap-реагировать-apollo installPostGraphile.js хорошим местом для начала.