PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какъв е правилният начин за използване на модула node.js postgresql?

Аз съм автор на node-postgres. Първо, извинявам се, че документацията не успя да изясни правилната опция:това е моя грешка. Ще се опитам да го подобря. Току-що написах Gist, за да обясня това, защото разговорът стана твърде дълъг за Twitter.

Използване на pg.connect еначинът в уеб среда.

PostgreSQL сървърът може да обработва само 1 заявка в даден момент на връзка. Това означава, че ако имате 1 глобален new pg.Client() свързано с вашия бекенд, цялото ви приложение е затруднено въз основа на това колко бързо postgrescan отговаря на заявки. Той буквално ще подреди всичко, поставяйки на опашка всяка заявка. Да, асинхронно е и това е наред... но няма ли да умножи пропускателната способност по 10x? Използвайте pg.connect задайте pg.defaults.poolSize към нещо разумно (правим 25-100, все още не сме сигурни в правилния брой).

new pg.Client е за когато знаеш какво правиш. Когато имате нужда от един дълготраен клиент по някаква причина или трябва много внимателно да контролирате жизнения цикъл. Добър пример за това е, когато използвате LISTEN/NOTIFY . Слушащият клиент трябва да е наоколо и свързан и да не се споделя, за да може правилно да обработва NOTIFY messages. Друг пример би бил при отваряне на 1-off клиент, за да се убият някакви неща или в скриптове на командния ред.

Едно много полезно нещо е да централизирате целия достъп до вашата база данни във вашето приложение в един файл. Не хвърляйте отпадъци pg.connect обаждания или нови клиенти навсякъде. Имате файл като db.js това изглежда нещо подобно:

module.exports = {
   query: function(text, values, cb) {
      pg.connect(function(err, client, done) {
        client.query(text, values, function(err, result) {
          done();
          cb(err, result);
        })
      });
   }
}

По този начин можете да промените своята реализация от pg.connect към персонализиран пул от клиенти или каквото и да е и трябва да променяте нещата само на едно място.

Разгледайте модула node-pg-query, който прави точно това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разширено съвпадение на дялове за присъединяване по дял

  2. Как да проверите версията на PostgreSQL

  3. ActiveRecord::StatementInvalid:PG InFailedSqlTransaction

  4. как да изпълним .sql скрипт на heroku?

  5. Подаване на параметри WHERE към изглед на PostgreSQL?