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/ –
@你有沒有看過我的問題?我在問其他解決方案。此解決方案很糟糕,不建議在現實生活中使用 –
您對問題的描述過於模糊,無法理解問題的本質。再加上問題的標題是誤導性的。我會建議重新考慮你的問題,並提出更多的問題;) –