English | 中文
- Rust
- MySQL 5.7
- 执行
init.sql
创建数据库表。 - 在
.env
设置环境变量DATABASE_URL
和JWT_SECRET
。 - 执行
run.sh
。
- /user/register
- /user/login
需要在 header 中设置 JWT
Authorization: Bearer <JWT>
- /book/create
- /book/search
- /book/update
- /book/delete
- 添加 redis 到 Cargo.toml,需要开启 feature
tokio-comp
。
必须使用
async
,因为如果不用async
,系统线程会在这一行代码执行时阻塞,在执行完成前不会执行其他任务。
- 在 src/error.rs 添加
redis::RedisError
。
#[error("redis_error: {0}")]
Redis(#[from] redis::RedisError),
如果加了
#[from]
,thiserror 会自动生成impl From<redis::RedisError> for CustomError
。在错误类型是CustomResult<T>
时,你可以用?
或.map_err(Into::into)?
返回错误。
如果不加#[from]
,你需要自己转换错误类型.map_err(|e| CustomError::Redis(e))
或.map_err(CustomError::Redis)
。
- 阅读代码 redis/examples。
- 编写缓存代码。
- 在
src/bin/server.rs
中,添加 Global-404-handler。