На стороне сервера я извлекаю данные из базы данных
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(), но я понятия не имею, как ее решить. Кто может помочь?
Ошибка:
Решение добавляет dataType: 'json' в ajax
_fetchComments() {
jQuery.ajax({
method: 'GET',
url: '/api/comments',
dataType: 'json',
success: (comments) => {
this.setState({ comments })
}
});
}