如何以正确的方式将 PostgreSQL 连接到 NodeJS?
How to connect PostgreSQL to NodeJS right way?
我无法理解如何在 NodeJS 中连接 PostgreSQL 池并正确执行。我将 Express 与 Router 一起使用,所有处理程序都放在不同的文件中。每个人都建议用数据库连接创建一个单独的文件,然后 "require" 它在每个源代码文件中。是否可以通过 app.use 或其他方式连接此池?对于每个用户请求,我的所有处理程序始终使用数据库连接。
我很确定下面的例子是其他人告诉你做的,它利用了 postgres 的池化。
如果有另一种方法可以像 require 一样简单,技术上每个文件 2 个 loc,我很想听听。
所需的 querydb 文件示例:
"use strict";
const pg = require('pg');
const config = {
connectionString: 'postgres://username:password@server/database'
};
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)
})
});
}
}
然后,当您想在任何地方查询数据库时,只需使用下面的几行代码,而不是 copy/pasting 整个连接池方法。
用法示例
const queryDB = require("../queryDB.js");
...
let query = "SELECT * FROM table;"
queryDB.query(query, (err, results) => {
// Handle err/results
})
我无法理解如何在 NodeJS 中连接 PostgreSQL 池并正确执行。我将 Express 与 Router 一起使用,所有处理程序都放在不同的文件中。每个人都建议用数据库连接创建一个单独的文件,然后 "require" 它在每个源代码文件中。是否可以通过 app.use 或其他方式连接此池?对于每个用户请求,我的所有处理程序始终使用数据库连接。
我很确定下面的例子是其他人告诉你做的,它利用了 postgres 的池化。
如果有另一种方法可以像 require 一样简单,技术上每个文件 2 个 loc,我很想听听。
所需的 querydb 文件示例:
"use strict";
const pg = require('pg');
const config = {
connectionString: 'postgres://username:password@server/database'
};
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)
})
});
}
}
然后,当您想在任何地方查询数据库时,只需使用下面的几行代码,而不是 copy/pasting 整个连接池方法。
用法示例
const queryDB = require("../queryDB.js");
...
let query = "SELECT * FROM table;"
queryDB.query(query, (err, results) => {
// Handle err/results
})