我想将app.get('/')中的req(Request)数据保存到某个东西。发生了“ TypeError:将圆形结构转换为JSON”
var express = require('express')
var app = express()
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({extended: false}))
app.get('/', (req, res) => {
var string = JSON.stringify(req);
saveRequest(string)
res.send("OK")
})
function saveRequest(){
//...
}
您知道要串的请求数据吗?我已经尝试过此代码
app.get('/', (req, res) => {
var string = objToString(req);
saveRequest(string)
res.send("OK")
})
function objToString (obj) {
var str = '';
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
str += p + '::' + obj[p] + '\n';
}
}
return str;
}
发生了“ TypeError:无法将对象转换为原始值”
答案 0 :(得分:2)
我不确定为什么要保存整个请求对象,但是有可用的节点模块来安全地对包含循环引用(例如json-stringify-safe)的对象进行字符串化。
这里有个例子
let app = require('express')();
let port = process.env.PORT || 3000;
let stringify = require('json-stringify-safe');
app.get('/', (req, res) => {
console.log(stringify(req));
res.send("Ok");
})
app.listen(port, () => {
console.log("Listening on " + port);
})