node.js - nodejs中把熱request保存下來,使用JSON.stringify(req)報錯,請問怎麼解決?
世界只因有你
世界只因有你 2017-05-16 13:20:56
0
3
811
router.post("/login", function(req, res, next) { var file = "c:\a.txt"; var str = JSON.stringify(req); fs.appendFile(file, str, function(err){ if(err) { console.log(err); } else { console.log("写入文件ok"); } }); });

初步學習nodejs,當一個請求過來的時候,我想看看這個requert中到底有多少東西,在控制台可以直接使用console打印出來,但是控制台太雞肋,我就想保存到記事本中在用本地的ide打開看,結果在JSON.stringify(req) 這裡就報錯了。

我這裡 把 var str = req; 這個也不行,換成這個 保存在txt中的就是 [object Object]了.

#求大神幫我看看, 這個是那裡出了問題?

世界只因有你
世界只因有你

全部回覆 (3)
为情所困

req是無法json序列化的,想看裡面有什麼除了console就只能是debug

    小葫芦

    req中存在循環引用的字段,所以無法stringify。舉個例子

    let a = {} let b = {a} a.b = b JSON.stringify(a) //TypeError: Converting circular structure to JSON a.toString() //[Object Object]

    如果你想查看req,可以透過調試來查看

    router.post("/login", function(req, res, next) { var file = "c:\a.txt"; var str = JSON.stringify(req); debugger; //断点 res.end('') });

    命令列調試
    node debug

    chrome調試
    node --inspect

      滿天的星座

      想要在文件中看 req 很簡單。

      router.post("/login", function(req, res, next) { console.log(req); });

      壓根兒就不需要自己進行文件寫入的操作,直接命令列輸入node app.js > ./a.log, req的所有內容就會寫入到當前工作目錄的a.log 這個文件中,注意把app.js 換成你要運行的js檔

        最新下載
        更多>
        網站特效
        網站源碼
        網站素材
        前端模板
        關於我們 免責聲明 Sitemap
        PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!