Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เข้าสู่ระบบ Node.js


การบันทึกเป็นส่วนสำคัญอย่างยิ่งในแอปพลิเคชันใดๆ ไม่ว่าจะสร้างใน Node.js หรือภาษาโปรแกรมอื่นๆ การบันทึกช่วยให้เราตรวจพบพฤติกรรมแปลก ๆ ของแอปพลิเคชันพร้อมกับข้อผิดพลาดและข้อยกเว้นแบบเรียลไทม์ หนึ่งควรใส่บันทึกตรรกะในแอปพลิเคชันของพวกเขาอย่างแน่นอน บันทึกเหล่านี้ช่วยให้ผู้ใช้ระบุข้อผิดพลาดและแก้ไขโดยด่วน

มี 5 ระดับการบันทึกที่แตกต่างกันซึ่งมีอยู่ในขณะนี้กับผู้ใช้ ระดับบันทึกเหล่านี้ใช้เพื่อกำหนดบันทึกประเภทต่างๆ และช่วยให้ผู้ใช้ระบุสถานการณ์ต่างๆ ได้ ระดับบันทึกต้องได้รับการกำหนดค่าอย่างระมัดระวังเพื่อให้ได้ข้อตกลงที่ดีที่สุดจากบันทึกเหล่านี้ -

  • ผิดพลาด

  • เตือน

  • ข้อมูล

  • ละเอียด

  • ดีบัก

มิดเดิลแวร์

คุณสามารถใส่มิดเดิลแวร์นี้ในไปป์ไลน์คำขอ เพื่อให้คุณสามารถใช้พลังของโมดูลดีบักเพื่อพิมพ์บันทึกได้โดยตรง ข้อได้เปรียบที่ดีที่สุดของโมดูลการดีบักคือเกือบทุกโมดูลใช้การดีบักสำหรับการพิมพ์บันทึก คุณสามารถใช้โมดูลดีบักเพื่อพิมพ์บันทึกและข้อผิดพลาด

มิดเดิลแวร์นี้ใช้เป็นหลักในการทำหน้าที่เป็นไปป์ไลน์กลาง - คุณสามารถส่งบันทึกในไปป์ไลน์นี้ ซึ่งจะพิมพ์ในไฟล์บันทึก คำขอและการตอบสนองจะถูกส่งผ่านไปยังมิดเดิลแวร์นี้เพื่อวัตถุประสงค์ในการบันทึก มีประโยชน์มากในแอป Express การตั้งค่ามิดเดิลแวร์นั้นง่ายดายและสามารถทำได้ในทุกเฟรมเวิร์กที่กำลังใช้งาน

การกำหนดค่าไฟล์สำหรับมิดเดิลแวร์

แอปพลิเคชัน

const app = express()
const logMiddleware = require('my-logging-middleware')
app.use(logMiddleware)

เราเตอร์

const router = express.Router()
const routeLoggingMiddleware = require('my-route-logging-middleware')
router.use(routeLoggingMiddleware)

ข้อผิดพลาด

const app = express();
const errorLoggingMiddleware = require('my-error-logging-middleware')
app.use(errorLoggingMiddleware)

แพ็คเกจวินสตัน

คุณยังสามารถใช้แพ็คเกจ winston เพื่อวัตถุประสงค์ในการบันทึกได้อีกด้วย นอกจากนี้ยังมีระดับบันทึก แบบสอบถาม และตัวสร้างโปรไฟล์ที่แตกต่างกัน

แอปพลิเคชัน

const app = express()
const winstonPackage = require('winston')
const consoleTransport = new winstonPackage.transports.Console()
const myWinstonOptions = {
   transports: [consoleTransport]
}
const logger = new winstonPackage.createLogger(myWinstonOptions)

function logRequest(req, res, next) {
   logger.info(req.url)
   next()
}
app.use(logRequest)

function logError(err, req, res, next) {
   logger.error(err)
   next()
}
app.use(logError)