其他分享
首页 > 其他分享> > Express - 使用错误处理

Express - 使用错误处理

作者:互联网

1. 同步错误

app.get('/', (req, resp) => {
  if(!req.query.name) {
    throw new Error('name query parameter required');
  }
  resp.end('ok');
});

2. 异步错误

异步错误,发生在回调函数中,需要通过next(err),才能捕获异步错误。

app.get('/', (req, resp, next) => {
  fs.readFile('./example.js', { encoding: 'utf8'}, (err, data) => {
    if(err) {
      next(err);
      return;
    }
    resp.end(data);
  });
});

3. 自定义错误处理函数

function errorHandler(err, req, resp, next)

const express = require('express');
const fs = require('fs');
const app = express();

// 设置路由
app.get('/', (req, resp, next) => {
  throw new Error('have  errors');
});

// 使用自定义错误处理记录日志并将error传递到下一个错误处理器
app.use((err, req, resp, next) => {
  fs.writeFile('./error.log', 
    `${req.method} ${req.url} Error: ${err.message}`,
    (err) => {
      next(err);
    });
});

//使用自定义错误处理
app.use((err, req, resp, next) => {
  resp.json({
    path: req.path,
    message: err.message
  });
});

app.listen(8080, () => {
    console.log('listen on 8080');
});

标签:req,错误,err,resp,Express,next,使用,错误处理,app
来源: https://www.cnblogs.com/xiaodi-js/p/15918903.html