如何以正确的方式将 PostgreSQL 连接到 NodeJS? [复制]
Posted
技术标签:
【中文标题】如何以正确的方式将 PostgreSQL 连接到 NodeJS? [复制]【英文标题】:How to connect PostgreSQL to NodeJS right way? [duplicate] 【发布时间】:2017-10-07 01:51:35 【问题描述】:我不明白如何在 NodeJS 中连接 PostgreSQL 池并正确连接。我正在使用 Express 和路由器,所有处理程序都放在不同的文件中。每个人都建议使用数据库连接创建一个单独的文件,然后在每个源代码文件中“要求”它。是否可以通过 app.use 或其他方式连接此池?对于每个用户请求,我所有的处理程序始终使用数据库连接。
【问题讨论】:
这应该会有所帮助:mherman.org/blog/2016/03/13/… @vitaly-t 你读过我的问题吗?我在问其他解决方案。这个解决方案很糟糕,不建议在现实生活中使用 您对问题的描述过于模糊,无法理解问题的本质。加上问题的标题具有误导性。我建议重新考虑您的问题并提出更多问题;) 【参考方案1】:我很确定下面的示例是其他人告诉你的,这利用了 postgres 的池。
如果有另一种方法可以像 require 一样简单,技术上每个文件 2 loc,我很乐意听到。
所需的 querydb 文件示例:
"use strict";
const url = require('url');
const pg = require('pg');
const params = url.parse("postgres://username:password@server/database");
const auth = params.auth.split(':');
const config =
user: auth[0],
password: auth[1],
host: params.hostname,
port: params.port,
database: params.pathname.split('/')[1]
;
const pool = new pg.Pool(config);
const DB =
query: function(query, callback)
pool.connect((err, client, done) =>
if(err) return callback(err)
client.query(query, (err, results) =>
done()
if(err) console.error("ERROR: ", err)
if(err) return callback(err)
callback(null, results.rows)
)
);
然后,当您想要查询数据库时,您只需使用下面的几行,而不是复制/粘贴整个连接池方法。
示例用法
const queryDB = require("../queryDB.js");
...
let query = "SELECT * FROM table;"
queryDB.query(query, (err, results) =>
// Handle err/results
)
【讨论】:
您好,每次查询执行后如何释放连接?就像假设我有 10 个查询在运行,那么在第一个查询之后如何释放与上述代码的连接?以上是关于如何以正确的方式将 PostgreSQL 连接到 NodeJS? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Node JS 连接到在线托管的 PostgreSQL
将源自不同表的两个 postgresql tsvector 字段连接到单个 postgresql 视图中,以启用联合全文搜索
如何将 Docker 内部的 Spring Boot 应用程序连接到 PostgreSQL 外部