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

时间:2018-09-08 02:56:54

标签: javascript json node.js express object

我想将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:无法将对象转换为原始值”

1 个答案:

答案 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);
})