javascript - 如何结束 'pg-promise'应用程序

标签 javascript node.js node-postgres pg-promise

我正在尝试编写一个 REST API,它根据请求负载选择数据库并执行某些操作。

根据文档,我在操作结束时释放共享连接对象,然后通过结束 pgp 应用程序来完成它。

    var pgp = require('pg-promise')();

    var connection = {
      user: 'generaluser', //env var: PGUSER
      database: 'seeddb', //env var: PGDATABASE
      password: '$$$$$$$', //env var: PGPASSWORD
      host: 'localhost', // Server hosting the postgres database
      port: 5432 //env var: PGPORT
    };

    var sco;

    module.exports = {
        getuser: function(req, res)
      {
        Account.findOne({ select: [ 'database' ], where: { appid: req.body.appid } })
        .then(function (result)
        {
          connection.database = result.database;
          var db = pgp(connection);
          return db.connect();
        })
        .then(function (obj)
        {
          sco = obj;
          return sco.any("select * from users");
        })
        .then(function (result)
        {
          console.log(result);
          return sco.done();
        })      
        .done(function ()
        {
          pgp.end();
          return res.ok("Done");
        });
      }
    };

尽管如此,我从第二个 API 调用(对同一数据库)开始不断收到以下错误:

WARNING: Creating a duplicate database object for the same connection.

有人可以帮助我解决以下任一问题

  • 在后续调用中重用 pgp 连接对象
  • 在每次调用结束时正确终止应用程序

谢谢

最佳答案

Terminate the application properly at the end of each call

你绝对不应该这样做,在每次查询后关闭整个连接池是一个糟糕的主意。

Reuse the pgp connection object on subsequent calls

有什么困难吗?您是否想知道如何重用 Node.js 中的对象?

另请参阅:Where should I initialize pg-promise .

并且您应该远离使用这样的方法db.connect,这不是使用框架的好方法。您应该依赖自动连接;)

关于javascript - 如何结束 'pg-promise'应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061475/

相关文章:

javascript - 通过类选择将 javascript 添加到 Wordpress 循环

javascript - 某些 IDE 的异步和等待错误

javascript - 使用 google Drive api 获取文件内容

arrays - 将数组从node-postgres传递到plpgsql函数

javascript - JavaScript 中的正则表达式,用于在字符串中找到的第一个 SUM/MIN/MAX/AVG

javascript - AngularJS 中添加的自定义 header 仅显示在 Access-Control-Request-Headers 上

javascript - 什么是 JavaScript 字符串换行符?

node.js - Node Js 中的 OrientDB 分页

node.js - node-postgres 没有执行 client.query()?

javascript - 未在 html 中定义的函数