卡在console.log(JSON.stringify(req))中间件

当我从我的客户端连接到我的Express 4 node.js websocket服务器并尝试loggingreq时,整个程序就卡住了。 它仍然接受新的连接,并执行到相同的console.log,但然后卡住了。 我试图弄清楚需要包含什么,但是这种搞清楚的方式似乎并不奏效。

app.use(function (req, res, next) { console.log("middleware"); var session = req.session; console.log("session: " + JSON.stringify(session)); console.log("req non json: " + req); console.log("req: " + JSON.stringify(req)); //stuck return next(); }); 

这里发生的事情是,你正在尝试req,一个对象不可串stream。

console.log()接受构造函数中的许多参数,如果你提供了一个参数,并且使用了+所发生的事情就是你试图传递两个string到console.log() stringifying或.toString()中而不是打印对象的内容。

我会试着解释你应该做什么,为什么:

console.log("string as argument one", [object])这是你想要的效果,内部console.log()会明白你要打印的string和对象的内容,而不是.toString()最常见的是[Object object]或者不存在(不是所有的对象都有.toString()因为它们可以用不同的prototypes创build)