Actix-web 项目中数据库操作与测试隔离方案
在开发 Web 应用时,处理数据库操作和确保测试的独立性是非常重要的。本文将详细介绍如何在 Actix-web 项目中实现数据库连接、执行插入查询,并解决测试过程中的数据冲突问题。
1. 存储新订阅者信息
当接收到有效的 POST /subscriptions 请求时,需要编写一个 INSERT 查询来存储新订阅者的详细信息。首先,需要在请求处理函数中获取数据库连接。
2. 应用状态与数据库连接
Actix-web 允许将与单个请求生命周期无关的数据附加到应用程序中,即应用状态。可以使用 app_data 方法将 PgConnection 注册为应用状态的一部分。
以下是修改后的 run 方法:
use crate::routes::{health_check, subscribe};
use actix_web::dev::Server;
use actix_web::{web, App, HttpServer};
use sqlx::PgConnection;
use std::net::TcpListener;
pub fn run(
listener: TcpListener,
connection: PgConnection
) -> Result<Server, std::io::Error> {
let server = HttpS
超级会员免费看
订阅专栏 解锁全文
2767

被折叠的 条评论
为什么被折叠?



