如何从 express node.js 中的对象请求数据转换为字符串

You*_*ton 1 javascript json object node.js express

我想将 app.get('/') 中的 req(Request) 数据保存到某处。发生“类型错误:将循环结构转换为 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(){
    //...
}
Run Code Online (Sandbox Code Playgroud)

你知道 req data to string 吗?我已经尝试过这段代码

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;
}
Run Code Online (Sandbox Code Playgroud)

它发生“类型错误:无法将对象转换为原始值”

Isa*_*ine 5

我不确定为什么要保存整个请求对象,但有节点模块可用于安全地字符串化包含循环引用的对象,例如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);
})
Run Code Online (Sandbox Code Playgroud)