當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript Pool.connect方法代碼示例

本文整理匯總了TypeScript中pg.Pool.connect方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Pool.connect方法的具體用法?TypeScript Pool.connect怎麽用?TypeScript Pool.connect使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pg.Pool的用法示例。


在下文中一共展示了Pool.connect方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: Date

    (async () => {
        const client = await pool.connect();

        try {
            for (const message of messages) {
                await client.query(
                    sql,
                    [
                        message.body,
                        message.expiresAt,
                        message.group,
                        message.localId,
                        message.publicId,
                        message.source,
                        message.title,
                        message.url,
                        new Date(),
                        userId,
                        message.badge,
                    ],
                );
            }
            await client.query('COMMIT');
        } catch (e) {
            await client.query('ROLLBACK');
            throw e;
        } finally {
            client.release();
        }
    })().catch((e) => console.error(e.stack));
開發者ID:lovett,項目名稱:notifier,代碼行數:30,代碼來源:db.ts

示例2:

app.post('/parent-events', (req, res) => {
	pool.connect((connectionError, client, releaseClient) => {
		if (connectionError) return console.error('Error fetching client from pool', connectionError);

		client.query(selectParentEventsSql(req.body.event), (queryError, result) => {
			if (queryError) return console.error('Error querying database', queryError);

			res.send(result.rows.map(parseEvent));
			releaseClient();
		});
	});
});
開發者ID:Chronovis,項目名稱:timeline-server,代碼行數:12,代碼來源:index.ts

示例3: Pool

export const createPoolConnection = (conf: any): DBConnectionsPool => {
    const pool: Pool = new Pool(conf);
    return {
        query(q) {
            return pool.query(q);
        },
        connect() {
            return pool.connect();
        },
        stop() {
            return pool.end();
        }
    };
};
開發者ID:zorro-del-caribe,項目名稱:ship-hold,代碼行數:14,代碼來源:connections.ts

示例4: getClient

export async function getClient(): Promise<Client> {

    var client: Client;
    try {
        client = await pool.connect();
    } catch (error) {
        if (client)
            client.release();
        throw error;
    }

    return new Promise<Client>((resolve: (client: Client) => void, reject) => {
        resolve(client);
        client.release();
    });
}
開發者ID:nicholas-robson,項目名稱:dkydev_webapp,代碼行數:16,代碼來源:db.ts

示例5: parseEvent

app.post('/events', (req, res) => {
	pool.connect((connectionError, client, releaseClient) => {
		if (connectionError) return console.error('Error fetching client from pool', connectionError);

		client.query(selectRootSql(req.body.event), (queryError1, result1) => {
			if (queryError1) return console.error('Error querying database', queryError1);

			client.query(sql(req.body.event), (queryError2, result2) => {
				if (queryError2) return console.error('Error querying database', queryError2);
				res.send({
					events: result2.rows.map(parseEvent),
					root: parseEvent(result1.rows[0]),
				});
				releaseClient();
			});
		});
	});
});
開發者ID:Chronovis,項目名稱:timeline-server,代碼行數:18,代碼來源:index.ts

示例6: Promise

  const poolClientInit: Promise<pg.Client> = new Promise((resolve, reject) => {
    if (poolClient) { return resolve(poolClient) }

    if (!connectionOptions && !process.env.PGUSER) {
      console.warn('Not found connection settings')
      return
    }

    const pool = new pg.Pool(Object.assign(connectionOptions ? connectionOptions : {}, {
      max: 100,
      idleTimeoutMillis: 500
    }))

    pool.connect((err, client) => {
      if (err) return reject(err)
      poolClient = client
      resolve(poolClient)
    })

    setTimeout(() => reject(new Error('Pool creation timeout')), POOL_CREATION_TIMEOUT)
  })
開發者ID:Alex0007,項目名稱:mysql-query-observable,代碼行數:21,代碼來源:index.ts

示例7: checkPrice

export function checkPrice(priceObj: Ticker): Promise < any > {
  priceObj.base = getTicker(priceObj.base, priceObj.exchange.toLowerCase());
  priceObj.quote = getTicker(priceObj.quote, priceObj.exchange.toLowerCase());
  // tslint:disable-next-line:max-line-length
  const table_name: string = "prices." + priceObj.exchange.toLowerCase() + "_" +  priceObj.base.toLowerCase() + "_" + priceObj.quote.toLowerCase();
  return pool.connect()
    .then(client => {
      // tslint:disable-next-line:max-line-length
      return client.query("CREATE TABLE IF NOT EXISTS " + table_name + " (price_id bigserial PRIMARY KEY, exchange_pair_id int NOT NULL, price float NOT NULL, bid float, ask float, baseVolume float, quoteVolume float, ts int NOT NULL)").then(res => {
        return client.query(
          // tslint:disable-next-line:max-line-length
          "INSERT INTO " + table_name + " (exchange_pair_id, price, bid, ask, baseVolume, ts) SELECT exchange_pair_id, $1, $2, $3, $4, $5 FROM exchange_pairs WHERE exchange_id = (SELECT exchange_id FROM exchanges WHERE exchange_name = ($6)) AND pair_id = (SELECT p.pair_id FROM pairs p WHERE p.base_id = (SELECT asset_id FROM assets WHERE asset_ticker = ($7)) AND p.quote_id = (SELECT asset_id FROM assets WHERE asset_ticker = ($8))) RETURNING price_id, exchange_pair_id", [priceObj.price, priceObj.bid, priceObj.ask, priceObj.baseVolume, Math.round(priceObj.ts), priceObj.exchange, priceObj.base, priceObj.quote]
        )
        .then(res => {
          if (res.rows[0]) {
            // tslint:disable-next-line:max-line-length
            return client.query(
               // tslint:disable-next-line:max-line-length
               "UPDATE exchange_pairs SET last_price = $1 WHERE exchange_pair_id = $2", [priceObj, res.rows[0].exchange_pair_id]
            ).then(_ => {
              client.release();
              return res.rows[0];
            }).catch(err => {
              logger.logError("checkPrice UPDATE query", err);
            });
          } else {
            client.release();
          }
        }).catch(e => {
          client.release();
          logger.logError("checkPrice INSERT query", e);
        });
      }).catch(e => {
        client.release();
        logger.logError("checkPrice CREATE query", e);
      });
    });
}
開發者ID:bradbesserman,項目名稱:Crypto-Price-API,代碼行數:38,代碼來源:database.ts

示例8: catch

    (async () => {
        const client = await pool.connect();

        try {
            for (const token of tokens) {
                await client.query(
                    sql,
                    [
                        userId,
                        token.key,
                        token.value,
                        token.label,
                        token.persist,
                    ],
                );
            }
            await client.query('COMMIT');
        } catch (e) {
            await client.query('ROLLBACK');
            throw e;
        } finally {
            client.release();
        }
    })().catch((e) => console.error(e.stack));
開發者ID:lovett,項目名稱:notifier,代碼行數:24,代碼來源:db.ts

示例9: done

  database: 'my_db', //env var: PGDATABASE
  password: 'secret', //env var: PGPASSWORD
  port: 5432, //env var: PGPORT
  max: 10, // max number of clients in the pool
  idleTimeoutMillis: 30000, // how long a client is allowed to remain idle before being closed
  Promise,
};
var pool = new pg.Pool(config);

pool.connect((err, client, done) => {
  if(err) {
    return console.error('error fetching client from pool', err);
  }
  client.query('SELECT $1::int AS number', ['1'], (err, result) => {
    done();

    if(err) {
      return console.error('error running query', err);
    }
    console.log(result.rows[0].number);
  });
});

pool.on('error', (err, client) => {
  console.error('idle client error', err.message, err.stack)
})

pool.end();
pool.end(() => {
    console.log("pool is closed");
});
開發者ID:AbraaoAlves,項目名稱:DefinitelyTyped,代碼行數:31,代碼來源:pg-tests.ts


注:本文中的pg.Pool.connect方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。