你好我卡在我的第一個回調「selectArticleByTitle(title,callback)」中,終端發送「無法讀取未定義的屬性'id'」。我不知道如何強制第一個回調來完成這個並啓動其他的。Nodejs回調在回調中的Mysql回調
router.get('/article/:title', function(req, res){
dataBase.selectArticleByTitle(req.params.title, function(db_titleERR, db_titleResults){
console.log(db_titleResults);
dataBase.selectArticle(db_titleResults[0].id, function(db_resultsArticleERR, db_resultsArticle) {
//Get id of the previous article
dataBase.previousArticle(db_titleResults[0].id, function(db_previousIdERR, db_previousId){
//Get id of the next article
dataBase.nextArticle(db_titleResults[0].id, function(db_nextIdERR, db_nextId){
//Get lastArticle
dataBase.lastArticle(function(db_lastArticleERR, db_lastArticle) {
});
});
});
});
});
});
});
exports.selectArticleByTitle = function(title, callback){
connection.query('select * from article where title=?', [title], function(err, row){
if(err)
callback(err, null);
else{
if(row){
callback(null, row);
}
}
});
}
這裏的日誌 console.log(db_titleResults);
[RowDataPacket { ID:7, 體裁: '科學', 圖片: 'XW', 源: 'xswx', 標題: 'zzazzaz', 元: 'azazadsq', inputDate: 2017-04-15T10:00:00.000Z, 遊客:0}] []如果你想堅持原來的代碼
預先感謝您
嘗試打印出來行的內容,以幫助看看你正在退回。 'console.log(row);' –
好吧,我編輯了我的帖子。 –
不幸的是,儘管這絕對不是最好的解決方案,但您可以參與業界所稱的_callback hell_,您在等待一個回調之前完成另一個回調。我很想看看其他解決方案。 – henry