24.错误处理中间件

// 引入express框架
const express = require('express');
const fs = require('fs');
// 创建网站服务器
const app = express();

app.get('/index', (req, res, next) => {
	// throw new Error('程序发生了未知错误')
	fs.readFile('./01.js', 'utf8', (err, result) => {
		if (err != null) {
			next(err)
		}else {
			res.send(result)
		}
	})

	// res.send('程序正常执行')
})

// 错误处理中间
app.use((err, req, res, next) => {
	res.status(500).send(err.message);
})

// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
// 引入express框架
const express = require('express');
const fs = require('fs');
const promisify = require('util').promisify;
const readFile = promisify(fs.readFile);
// 创建网站服务器
const app = express();

app.get('/index', async (req, res, next) => {
	try {
		await readFile('./aaa.js')
	}catch (ex) {
		next(ex);
	}
})

// 错误处理中间
app.use((err, req, res, next) => {
	res.status(500).send(err.message);
})

// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 FastAPI 中,你可以使用中间件来实现统一的错误处理。下面是一个示例: ```python from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.exceptions import RequestValidationError from starlette.exceptions import HTTPException as StarletteHTTPException from starlette.responses import JSONResponse app = FastAPI() # 添加跨域中间件 app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) # 自定义异常处理中间件 @app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return JSONResponse( status_code=400, content={"detail": "Validation error"} ) @app.exception_handler(StarletteHTTPException) async def http_exception_handler(request, exc): return JSONResponse( status_code=exc.status_code, content={"detail": str(exc)} ) @app.get("/items/{item_id}") async def read_item(item_id: int): if item_id == 42: raise StarletteHTTPException(status_code=403, detail="Item forbidden") return {"item_id": item_id} ``` 在上面的示例中,我们添加了一个跨域中间件 `CORSMiddleware`,它允许跨域请求。然后,我们定义了两个异常处理器函数:`validation_exception_handler` 和 `http_exception_handler`。 `validation_exception_handler` 处理 `RequestValidationError` 类型的异常,而 `http_exception_handler` 处理 `StarletteHTTPException` 类型的异常。 这些异常处理器函数会被自动调用,当抛出相应的异常时,它们会返回自定义的 JSON 响应,以提供有关错误的详细信息。 请注意,此示例仅用于演示目的。在实际使用时,你可能需要根据具体需求进行定制和优化。另外,你还可以添加其他中间件来处理日志记录、身份验证等任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值