我想從這個數據庫查詢返回的數據上調用一個函數,如下面的代碼片段所示。Javascript:將參數傳遞給回調函數
function connectDB(query, data, callback) {
pg.connect(process.env.DATABASE_URL, function (err, client) {
if (err) {
console.log(err);
} else {
client
.query(query, data, function (err, result) {
callback(result.rows);
});
}
}
}
function foo(data) {
connectDB("SELECT * FROM mytable WHERE id=$1", someID, callbackfn(data));
}
我不知道如何編寫callbackfn,以便我可以使用原始函數中的數據和db結果中的行。
function callbackfn(data) {
return function(rows) {
// Do something with rows and data
}
}
您已經定義了'callback'作爲參數傳遞給'connectDB',所以,除非你通過一個名爲'callback'到'connectDB'功能,它不會被調用該功能。你也有一組奇怪的嵌套函數。目前還不完全清楚你想要做什麼。 –
我澄清了一些事情。忽略嵌套函數(我刪除它們)。 – amo
沒有特別的理由,從這個代碼本身,爲什麼這不起作用。我會建議在調用'callback'之前把'console.log('查詢')'之類的東西放在'callback'之前,以確保代碼得到那麼多。或者只是使用調試器並在那裏放置一個斷點。 –