javascript - 如何解决 NodeJS 中的“TypeError:将循环结构转换为 JSON”
问题描述
我正在使用反应。为了从我的 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.com/mysqljs/mysql)
提供更多细节以进一步解释,但根本问题是变量“答案”的值
推荐阅读
- bootstrap-4 - bootstrap.min.js:6 Uncaught TypeError: n is not a constructor return when I click the dropdown button
- sql - 自连接以从下一行的 customer_in_time 中减去一行的 customer_out_time
- javascript - 无法从外部函数中提取价值
- image - Flutter 裁剪 2 个旋转图像
- javascript - 使用javascript从html页面获取数据
- java - Android volley 返回 clienterror 400 [Bad request]
- javascript - 如何在 React JS 中仅显示结果但消失按钮
- python - 即使在指定error_bad_lines = False之后,在pandas中也会出现解析器错误
- kotlin - 如何在 Gradle 中添加任务依赖项?
- google-analytics - BigQuery:如何在物化视图中展平表格?