1
在服務器端返回數據庫中的數據,我從數據庫中提取數據如何在HTTP GET方法
var sql = require('mssql');
app.get('/api/comments', function(request, response) {
var sqlConfig = {
// Connection string parameters.
}
sql.connect(sqlConfig, function() {
var request = new sql.Request();
var stringRequest = 'select TOP 10 * from comment';
request.query(stringRequest, function(err, recordset) {
if(err) console.log(err);
sql.close();
response.json(recordset);
});
});
});
然後,我通過AJAX(get方法)取從服務器端的數據
_fetchComments() {
jQuery.ajax({
method: 'GET',
url: '/api/comments',
success: (comments) => {
this.setState({ comments })
}
});
當我通過Ajax獲取數據時出現錯誤。 (Uncaught TypeError:this.state.comments.map不是函數) 看起來數據返回是未定義的。取代數據庫,代碼是工作的,如果我在服務器端使用靜態數據(硬代碼)。
我認爲問題是sql.connect()中的回調函數,但我不知道如何解決它。任何人都可以提供幫助嗎?
您使用的反應是?什麼是包含_fetchComments函數? –
您可以在成功回調中添加** comments **變量的值,還可以添加setState()函數的代碼。 –
什麼是生成錯誤的代碼?請告訴我們該代碼。我的猜測是,你正在嘗試訪問'this.state.comments.map'之前,你的ajax調用已經完成。它是異步的,只有當它完成時才知道是在ajax回調中。 – jfriend00