Hit*_*sal 6 javascript json node.js
我正在使用nodejs的请求包
我在这里使用此代码
var formData = ({first_name:firstname,last_name:lastname,user_name:username, email:email,password:password});
request.post({url:'http://localhost:8081/register', JSON: formData}, function(err, connection, body) {
Run Code Online (Sandbox Code Playgroud)
和
exports.Register = function(req, res) {
res.header("Access-Control-Allow-Origin", "*");
console.log("Request data " +JSON.stringify(req));
Run Code Online (Sandbox Code Playgroud)
这里我得到这个错误TypeError:将循环结构转换为JSON
任何人都可以告诉我这是什么问题
谢谢
Sci*_*ter 22
JSON不接受循环对象 - 引用自身的对象.JSON.stringify()如果碰到其中一个,将会抛出错误.
request(req)对象本质上是循环的 - Node就是这样做的.
在这种情况下,因为您只需要将其记录到控制台,您可以使用控制台的本机字符串化并避免使用JSON:
console.log("Request data:");
console.log(req);
Run Code Online (Sandbox Code Playgroud)
Aru*_*E S 15
我能够使用这种方法获取值,在Careerkarma.com
上找到
输出看起来像这样。

我只是在调试器控制台中运行此代码。将您的对象传递给此函数。
也复制粘贴该功能。
const replacerFunc = () => {
const visited = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (visited.has(value)) {
return;
}
visited.add(value);
}
return value;
};
};
JSON.stringify(circObj, replacerFunc());
Run Code Online (Sandbox Code Playgroud)
尝试使用这个 npm 包。这帮助我从我的节点解码 res 结构,同时passport-azure-ad用于使用 Microsoft 帐户集成登录
https://www.npmjs.com/package/circular-json
您可以通过执行以下操作来字符串化您的循环结构:
const str = CircularJSON.stringify(obj);
Run Code Online (Sandbox Code Playgroud)
然后您可以使用 JSON 解析器将其转换为 JSON
JSON.parse(str)
Run Code Online (Sandbox Code Playgroud)
我忘记在异步函数中使用await关键字。与给定的系统
blogRouter.put('/:id', async (request, response) => {
const updatedBlog = Blog.findByIdAndUpdate(
request.params.id,
request.body,
{ new: true }
);
response.status(201).json(updatedBlog);
});
Run Code Online (Sandbox Code Playgroud)
Blog.findByIdAndUpdate 应与await关键字一起使用。
小智 6
使用这个https://www.npmjs.com/package/json-stringify-safe
var stringify = require('json-stringify-safe');
var circularObj = {};
circularObj.circularRef = circularObj;
circularObj.list = [ circularObj, circularObj ];
console.log(stringify(circularObj, null, 2));
stringify(obj, serializer, indent, decycler)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39073 次 |
| 最近记录: |