Как вернуть данные базы данных в метод HTTP get

1

На стороне сервера я извлекаю данные из базы данных

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(), но я понятия не имею, как ее решить. Кто может помочь?

Ошибка: Изображение 174551

  • 1
    Вы используете React? Что содержит функцию _fetchComments?
  • 0
    Вы можете добавить значение переменной comments в обратном вызове success, а также код для функции setState ().
Показать ещё 5 комментариев
Теги:

1 ответ

0
Лучший ответ

Решение добавляет dataType: 'json' в ajax

 _fetchComments() {
   jQuery.ajax({
   method: 'GET',
   url: '/api/comments',
   dataType: 'json',
   success: (comments) => {
   this.setState({ comments })
 }
 });
 }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню