1 const express = require('express'); 2 const fs = require('fs'); 3 const path = require('path'); 4 const app = express(); 5 6 app.get('/', (req, res, next)=>{ 7 try { 8 const data = JSON.parse('{name:');//试验错误 9 res.json(data); 10 }catch (e) { 11 //抛出错误 12 next(e); 13 } 14 }); 15 16 app.get('/b', (req, res, next)=>{ 17 fs.readFile(path.join(__dirname, 'ccccc.log'), (err, data)=>{ 18 if(err){ 19 next(err); 20 } 21 }); 22 }); 23 24 app.get('/a', (req, res, next)=>{ 25 res.send('<h1>Hello World!</h1>'); 26 }); 27 28 29 /* 30 统一的错误处理日志 31 */ 32 app.use((err, req, res, next)=>{ 33 const error_log = ` 34 ===================================== 35 错误名: ${err.name}, 36 错误信息:${err.message}, 37 错误时间:${new Date()}, 38 错误堆栈:${err.stack}, 39 ===================================== 40 `; 41 fs.appendFile(path.join(__dirname, 'error.log'), error_log, (err)=>{ 42 res.writeHead(500, {'Content-Type': 'text/html;charset=utf-8'}); 43 res.end('500 服务器内部错误!') 44 }); 45 }); 46 47 app.use((req, res, next)=>{ 48 res.writeHead(404, {'Content-Type': 'text/html;charset=utf-8'}); 49 res.end('404 您访问的资源不存在!') 50 }); 51 52 app.listen(3000, ()=>{ 53 console.log('running.....') 54 });