学了好几个月的Rust, 终于上手写一个web项目, 处处是坑, 某些地方卡住了我一周多时间, 分享几个坑, 给后来的小伙伴
本人电脑开发环境
服务器是debian10.10
Mysql版本是8.0.25
我尽可能少依赖第三方库, 做一个干净, 比较少的代码让大家看懂, 给大家提供一个模板
第一个坑
今天, 也就是2021年6月30日, 目前的actix-web的最新版本是3.3.2, 同时actix-web的异步运行时是基于tokio 0.2x系列构建的
与此同时, sqlx的最新版本是0.5.5, 这个第三方库运行时是基于tokio1.x系列的
也就是说, actix-web[tokio 0.2x] + sqlx[tokio 1.x]这个组合, 是不兼容的!!!
所以, sqlx的版本, 我们需要向前找基于tokio0.1x的那个最终版本, 也就是0.4.2
第二个坑
sqlx提供了两个基于actix-web库的特性门(features)
我们要选择native(原生)那个协议, 不能选择rustls, 具体原因是 rustls缺乏对 ipaddress 的支持, 在连接数据库的时候, 不识别ip地址, 所以结果就是, 无论如何都连不上数据库
csdn的代码块竟然不支持rust语言, 那我就贴我的gitee, 大家可以多支持我一下, 点个赞加个星星啥的, 谢谢了
代码地址
让我们访问http://127.0.0.1:8080/hello, 可以看到