Как реализовать postgraphile в Express.js

Я не нашел много документации по интеграции postgraphile в express.js, пожалуйста, если кто-то детально знает об интеграции этих технологий, я был бы очень признателен. Большое спасибо Документация дает мне только это:

Если кто-нибудь даст мне пример гида, я буду признателен.

const express = require ("express"); const {postgraphile} = require ("postgraphile");

const app = express ();

app.use (postgraphile (process.env.DATABASE_URL || "postgres: ///"));

app.listen (process.env.PORT || 3000);

Я надеюсь, что вывод - это простой код или простой пример реализации postgraphile в express.js

1 ответ

Вот хорошее объяснение: https://www.graphile.org/postgraphile/usage-library/

Вот пример, с которого вы можете начать:

      const express = require("express");
const { postgraphile } = require("postgraphile");
const morgan = require("morgan");

const port = process.env.PORT || 5000;
const production = process.env.NODE_ENV === "production";

const app = express();
app.use(morgan("combined"));

const postgraphileOptionsDev = {
  subscriptions: true,
  watchPg: true,
  dynamicJson: true,
  setofFunctionsContainNulls: false,
  ignoreRBAC: false,
  showErrorStack: "json",
  extendedErrors: ["hint", "detail", "errcode"],
  appendPlugins: [require("@graphile-contrib/pg-simplify-inflector")],
  exportGqlSchemaPath: "schema.graphql",
  graphiql: true,
  enhanceGraphiql: true,
  allowExplain(req) {
    // TODO: customise condition!
    return true;
  },
  enableQueryBatching: true,
  legacyRelations: "omit",
  pgSettings(req) {
    /* TODO */
  },
};

const postgraphileOptionsProd = {
  subscriptions: true,
  retryOnInitFail: true,
  dynamicJson: true,
  setofFunctionsContainNulls: false,
  ignoreRBAC: false,
  extendedErrors: ["errcode"],
  appendPlugins: [require("@graphile-contrib/pg-simplify-inflector")],
  graphiql: false,
  enableQueryBatching: true,
  disableQueryLog: true,
  legacyRelations: "omit",
  pgSettings(req) {
    /* TODO */
  },
};

app.use(
  postgraphile(
    process.env.DATABASE_URL,
    "app_public",
    production ? postgraphileOptionsProd : postgraphileOptionsDev
  )
);

app.listen(port, "0.0.0.0", () => {
  console.log(`${production ? " PRODUCTION" : "‍ DEV"} server`);
  console.log(`GraphQL endpoint: http://localhost:${port}/graphql`);
  console.log(
    `GraphiQL (GraphQL IDE) endpoint: http://localhost:${port}/graphiql`
  );
});

Другие вопросы по тегам