logging-all-the-requests-coming-through-an-express-app

#記錄經由 Express 應用程式的所有請求 我有一個需求,希望以簡單的方式記錄進入我的 Express 應用程式的所有請求,只要將它們記錄到控制台就好,不需要花太多時間(也不需要)搭建更複雜的環境。 因此,我安裝了 express-requests-logger: npm install express-requests-logger 然後在我的 Node 應用程式中引入它: import audit from 'express-requests-logger' 並將它作為中介軟體添加到我的 Express 應用程式中: app.use(audit()) 完成! 你也可以這樣做: app.use((req, res, next) => { console.log(req); next(); }); 但是 express-requests-logger 提供了許多選項、格式化和過濾器可供您使用,可以輕鬆達到您的要求。

如何在Node中記錄物件

在瀏覽器中運行的JavaScript程式中,當您輸入console.log()時,會在瀏覽器控制台中產生一條輸出: 點擊箭頭後,輸出會展開,您可以清楚地看到物件的屬性: 在Node中,情況是一樣的。 當我們將物件輸出到控制台時,並沒有像在瀏覽器中那樣的便利。在手動運行Node程式時,或者在日誌文件中,輸出會是物件的字串表示。 一切都很好,直到達到某個層次的巢狀結構。在兩個層次的巢狀結構後,Node就放棄並以[Object]作為佔位符輸出: const obj = { name: 'Flavio', age: 35, person1: { name: 'Tony', age: 50, person2: { name: 'Albert', age: 21, person3: { name: 'Peter', age: 23 } } } } console.log(obj) { name: 'Flavio', age: 35, person1: { name: 'Tony', age: 50, person2: { name: 'Albert', age: 21, person3: [Object] } } } 如何輸出完整的物件? 保持輸出格式的最佳方法是使用: console.log(JSON.stringify(obj, null, 2)) 其中的2是用於縮排的空格數。 另一個選擇是使用: require('util').inspect.defaultOptions.depth = null console.log(obj) 但問題是,二級巢狀結構之後的嵌套物件會被攤平。對於複雜的物件可能會造成問題。