我是新來的節點和承諾。我有兩個文件 - server.js
和db.js
將對象從SQL查詢函數傳遞到一個單獨的函數
server.js
作爲模塊導入db.js
。
我正在從db.js
模塊中的SQL數據庫提取一些數據,並試圖將該數據傳遞給server.js
中的函數。 我已經成功從數據庫中提取數據,但是當我嘗試將它傳遞給server.js
中的函數時,它僅返回undefined
值。
下面的代碼
server.js
const db = require('./db.js');
app.post('/api/trigger-push-msg/', function (req, res) {
return getSubscriptionsFromDatabase()
.then(function(subscriptions) {
// Do something
});
});
function getSubscriptionsFromDatabase() {
return new Promise((resolve, reject) => {
let subscriptions = db.getSubscriptions();
console.log(subscriptions); // this only prints "undefined"
if (subscriptions != undefined) {
resolve(subscriptions);
} else {
reject("No"); // this executes
}
})
}
db.js
module.exports = {
getSubscriptions: function() {
var sql = "SELECT * FROM subscriptions";
con.query(sql, function(err, result) {
if (err) throw err;
console.log(result); // this prints the same result as I want
return result;
})
}
}
你應該把'返回新希望(...)'的'getSubscriptions'功能。你不能從該回調中返回,你只能調用'resolve'。 – Bergi