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

Posted

技术标签:

【中文标题】如何从express node.js中的对象req数据转换为字符串【英文标题】:How to convert to string from object req data in express node.js 【发布时间】:2019-02-13 08:12:27 【问题描述】:

我想将 app.get('/') 中的 req(Request) 数据保存到某个东西。出现“TypeError: Converting circular structure to 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()
    //...

你知道 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;

发生“TypeError:无法将对象转换为原始值”

【问题讨论】:

【参考方案1】:

我不确定您为什么要保存整个请求对象,但有一些节点模块可用于安全地对包含循环引用(例如 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);
)

【讨论】:

以上是关于如何从express node.js中的对象req数据转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

Node.js(Express API):req.body.myobject 未定义且无法正常工作

Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?

如何在用户从帐户注销时断开事件触发(node.js + express socket.io)

Node.js, express, html form req.body 未定义

Node.js中的express框架获取http参数

从 node.js/express.js 中的多个异步源构建对象