0
我无法理解如何在NodeJS中连接PostgreSQL池并正确执行。我在路由器上使用Express,所有处理程序都放在不同的文件中。每个人都建议使用数据库连接创建一个单独的文件,然后在每个源代码文件中“要求”它。是否有可能通过app.use或其他东西连接这个池?我的所有处理程序始终使用数据库连接,为每个用户请求。如何正确连接PostgreSQL到NodeJS?
我无法理解如何在NodeJS中连接PostgreSQL池并正确执行。我在路由器上使用Express,所有处理程序都放在不同的文件中。每个人都建议使用数据库连接创建一个单独的文件,然后在每个源代码文件中“要求”它。是否有可能通过app.use或其他东西连接这个池?我的所有处理程序始终使用数据库连接,为每个用户请求。如何正确连接PostgreSQL到NodeJS?
我很确定下面的例子是别人告诉你要做的,这是利用postgres的池。
如果还有另一种方法可以像每个文件中的require和技术2 loc一样简单,我很乐意听到它。所需querydb文件
例子:
"use strict";
const url = require('url');
const pg = require('pg');
const params = url.parse("postgres://username:[email protected]/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
})
这应有助于:http://mherman.org/blog/2016/03/13/designing-a-restful-api-with-node-and-postgres/ –
@你有没有看过我的问题?我在问其他解决方案。此解决方案很糟糕,不建议在现实生活中使用 –
您对问题的描述过于模糊,无法理解问题的本质。再加上问题的标题是误导性的。我会建议重新考虑你的问题,并提出更多的问题;) –