最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何解决NodeJS中的“ TypeError:将圆形结构转换为JSON”

IT培训 admin 4浏览 0评论

如何解决NodeJS中的“ TypeError:将圆形结构转换为JSON”

我正在使用React。为了从MySQL数据库查询一些数据,我创建了另一个NodeJS后端服务器并执行了此代码。

  var con = mysql.createConnection({
    host: "localhost",
    port: "3306",
    database: "my_books",
    user: "root",
    password: "pokemon2345"
  });
  con.connect();

  var sql = JSON.parse(req.query.msg);
  console.log(sql);
  var answer = con.query(sql);
  con.end();
  res.send(JSON.stringify(answer));

这是我在主React应用中的代码。

    var request = new XMLHttpRequest();
    var jsql = JSON.stringify(sql);
    request.onreadystatechange = function() {
      debugger;
      if (this.readyState == 4 && this.status == 200) {
        var response = this.responseText;
        toast.success(typeof response);
      }
    };
    request.open(
      "GET",
      "http://localhost:3001/retrieve_books" + "?msg=" + jsql,
      true
    );
    request.send(jsql);

我无法弄清楚为什么会发生此错误,以及我的代码是如何循环的?预先感谢!

回答如下:

循环JSON意味着在对象内部存在对对象的引用,这使得JSON.stringify无法实现。

在您的情况下,可能是res.send(JSON.stringify(answer))。 con.query(sql)的响应可能不是一个简单的对象。

此外,该函数是异步的,并且期望回调获得答案(我假设您正在使用mysqljs https://github/mysqljs/mysql)

提供更多细节以进一步解释,但是潜在的问题是变量“ answer”的值

如何解决NodeJS中的“ TypeError:将圆形结构转换为JSON”

我正在使用React。为了从MySQL数据库查询一些数据,我创建了另一个NodeJS后端服务器并执行了此代码。

  var con = mysql.createConnection({
    host: "localhost",
    port: "3306",
    database: "my_books",
    user: "root",
    password: "pokemon2345"
  });
  con.connect();

  var sql = JSON.parse(req.query.msg);
  console.log(sql);
  var answer = con.query(sql);
  con.end();
  res.send(JSON.stringify(answer));

这是我在主React应用中的代码。

    var request = new XMLHttpRequest();
    var jsql = JSON.stringify(sql);
    request.onreadystatechange = function() {
      debugger;
      if (this.readyState == 4 && this.status == 200) {
        var response = this.responseText;
        toast.success(typeof response);
      }
    };
    request.open(
      "GET",
      "http://localhost:3001/retrieve_books" + "?msg=" + jsql,
      true
    );
    request.send(jsql);

我无法弄清楚为什么会发生此错误,以及我的代码是如何循环的?预先感谢!

回答如下:

循环JSON意味着在对象内部存在对对象的引用,这使得JSON.stringify无法实现。

在您的情况下,可能是res.send(JSON.stringify(answer))。 con.query(sql)的响应可能不是一个简单的对象。

此外,该函数是异步的,并且期望回调获得答案(我假设您正在使用mysqljs https://github/mysqljs/mysql)

提供更多细节以进一步解释,但是潜在的问题是变量“ answer”的值

发布评论

评论列表 (0)

  1. 暂无评论