2

我正在使用 GraphQL API 生成器图形作为 Express 服务器中的中间件。

我想创建一个自定义 http 端点(不是 graphql),对 postgres 数据库进行原始 sql 查询。有什么方法可以从 postgraphile 中间件获取 pgPool/pgQuery 吗?

基本上我需要这样的东西:

app.use(postgraphile(pgConnectionString, pgSchemas, pgOptions));

app.get("/foo", (req, res) => {

    // get a pg query / pg client from the postgraphile middleware

    // make some query

    const result = await pgQuery.query(
        "SELECT ...."
    );

    // do something with result
});

有没有人做过这样的事情?

或者另一种方式会更好,即创建一个注入postgraphile的pgPool?

干杯!

4

1 回答 1

3

我通过将 pgPool 注入postgraphile中间件来解决这个问题。并使用 pgPool 查询数据库。

// ...
const pool = new Pool({
  connectionString: pgConnectionString,
});
pool.on("error", (err, client) => {
  console.error("Unexpected error on idle client", err);
});
app.use(postgraphile(pool, pgSchemas, pgOptions));
于 2018-06-14T09:54:18.113 回答