如何在HTTP get方法中返回数据库数据

时间:2017-09-13 04:11:34

标签: javascript node.js

在服务器端,我从数据库中获取数据

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获取数据时出现错误。 (未捕获的TypeError:this.state.comments.map不是函数) 似乎数据返回是未定义的。如果我在服务器端使用静态数据(硬代码),代码取代数据库就可以了。

我认为问题是sql.connect()中的回调函数,但我不知道如何解决它。有人可以帮忙吗?

错误:enter image description here

1 个答案:

答案 0 :(得分:0)

解决方案是添加dataType:' json'到ajax

{
  code: 409,
  message: 'Id xxx aldready exist'
}