Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >rust + react 全栈开发一个笔记本 app (上)

rust + react 全栈开发一个笔记本 app (上)

原创
作者头像
TPEngineer
发布于 2024-06-16 11:02:45
发布于 2024-06-16 11:02:45
2920
举报

前言

为了提高 rust 熟练度,笔者用 rust + react 全栈开发了一个笔记本 app ,其中 rust 中涉及到 actix-web 框架处理 http 请求、sqlx 连接数据库

一、截图展示

二、技术栈

前端

react

tailwind

后端

rust

sqlx/mysql

actix/actix-web

三、开发环境

笔者的电脑是 ubuntu 24.04 amd 64位系统,因此环境的准备步骤如下。

1.安装 docker

代码语言:bash
AI代码解释
复制
sudo snap install docker

2.安装 mysql

代码语言:bash
AI代码解释
复制
sudo docker pull docker.kubesre.xyz/mysql:latest

注意 dockerhub 已经被封,我们得加上公益镜像地址如 docker.kubesre.xyz

3.安装 rust

代码语言:bash
AI代码解释
复制
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

4.配置 rust crates 镜像

官方镜像源实在太慢,我们采用 ustc 的镜像源。

代码语言:bash
AI代码解释
复制
mkdir -vp ${CARGO_HOME:-$HOME/.cargo}

cat << EOF | tee -a ${CARGO_HOME:-$HOME/.cargo}/config.toml
[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
EOF

5.安装 nodejs

我们用nvm 安装 nodejs,考虑到从 github 安装 nvm 非常慢,我们从 gitee 安装,如下命令。

代码语言:bash
AI代码解释
复制
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"

nvm安装完毕后,即可安装 nodejs

代码语言:bash
AI代码解释
复制
nvm install 20
nvm use 20

6.准备前端开发环境

首先我们进入前端代码目录,安装依赖并运行。

代码语言:bash
AI代码解释
复制
npm install pnpm -g
pnpm install
pnpm dev

7.准备后端开发环境

首先我们先启动 mysql 服务器,配置端口和密码。

代码语言:bash
AI代码解释
复制
sudo docker run -itd --name mysql-server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

注意我们要初始化数据库。

代码语言:sql
AI代码解释
复制
CREATE DATABASE notes
    DEFAULT CHARACTER SET = 'utf8mb4';

然后我们进入后端代码目录,修改配置文件。

代码语言:.env
AI代码解释
复制
MYSQL_DATABASE=notes
MYSQL_USER=root
MYSQL_PASSWORD=123456
MYSQL_ROOT_PASSWORD=123456

# Don't worry about the placeholders. Rust supports this feature.
DATABASE_URL=mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@localhost:3306/${MYSQL_DATABASE}

接下来进行数据迁移

代码语言:bash
AI代码解释
复制
cargo install sqlx-cli
sqlx migrate run

最后,我们运行项目,完成前后端联调。

代码语言:bash
AI代码解释
复制
cargo build
cargo run

成功运行如下图所示。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如此简单,一键绕过主流杀软!MaLoader免杀神器实测详解
在网络安全领域,攻防技术的更新迭代从未停止。今天,我们深入解析一款基于现代技术栈打造的免杀工具——MaLoader,这款结合Tauri与Rust开发的工具,为安全研究人员提供了强大的技术支持。
释然IT杂谈
2025/05/13
1200
如此简单,一键绕过主流杀软!MaLoader免杀神器实测详解
【Rust】Rust环境配置与语法基础
Rust是一种创新型的系统编程语言,由Mozilla研发。它将C++的高性能和控制力与安全性、并发性和现代语言设计相结合。
DevFrank
2024/07/24
1410
基于 actix、async-graphql、rbatis 构建异步 Rust GraphQL 服务-起步及 crate 选择
前段时间,笔者写了一个构建 Rust 异步 GraphQL 服务的系列博文,构建 Rust 异步 GraphQL 服务:基于 tide + async-graphql + mongodb,采用的 Rust web 框架是 Tide。
niqin.com
2022/06/30
1.6K0
基于 actix、async-graphql、rbatis 构建异步 Rust GraphQL 服务-起步及 crate 选择
使用国内镜像加速 Rust 更新与下载
我们需要指定 RUSTUP_DIST_SERVER(默认指向 https://static.rust-lang.org)和 RUSTUP_UPDATE_ROOT (默认指向https://static.rust-lang.org/rustup),这两个网站均在中国大陆境外,因此在中国大陆访问会很慢,需要配置成境内的镜像。
MikeLoveRust
2020/04/24
15.2K0
构建基于 Rust 技术栈的 Graphql 服务(1)- 起步及 crate 选择
本系列博客中,我们使用 Tide + async-grapqhl + mongodb + jsonwebtoken + handlebars-rust 构建基于 Rust 技术栈的 GraphQl 服务。同时,我们需要做到前后端分离。
niqin.com
2022/06/30
6740
构建基于 Rust 技术栈的 Graphql 服务(1)- 起步及 crate 选择
Next.js + Rust 革新全栈开发,Rust没那么难
最近,shuttle 发布了新的 Node.js CLI 包,允许用户快速引导由 Next.js 前端加 Axum 后端(一种流行的 Rust Web 框架,以易于上手、语法简单著称)开发的应用程序。
深度学习与Python
2023/08/10
9230
Next.js + Rust 革新全栈开发,Rust没那么难
Rust的第二次接触-写个小服务器程序
蛮久前入门了一下 Rust 语言。它的设计模型非常地吸引C/C++的开发者。但是学习语言嘛还是要练习一下,之前也用它给我们项目写了个命令行小工具。这回拿来写个小型的服务器程序吧。
owent
2018/10/09
4.2K2
Rust 和 Wasm 的融合,使用 yew 构建 WebAssembly 标准的 web 前端 - 起步及 crate 选择
在以前的构建 Rust 异步 GraphQL 服务系列中,分别采用 tide + async-graphql + mongodb 和 actix-web + async-graphql + rbatis + postgresql / mysql 开发了 GraphQL 服务后端。感兴趣的朋友可以参阅博文——
niqin.com
2022/09/01
1.9K0
利用 Docker 快速实现 MySQL binlog 主从备份
binlog 是MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句(不包括 SELECT),可以在配置文件开启,也可以在 MySQL 客户端开启. 可以在客户端键入show plugins; 查看 binlog 是否已安装开启( Active )
FesonX
2020/03/01
1.5K0
利用 Docker 快速实现 MySQL binlog 主从备份
Substrate 开发系列 - 环境搭建
Polkadot 目标是成为一个连接各区块链的区块链(网络),Substrate 是 Polkadot 生态中重要的一环, 他是一套工具与框架的集合,让我们以模块化的方式来构建自己的区块链。Polkadot本身也是基于 Subsstrate 创建的。
Tiny熊
2020/06/04
1.5K0
Substrate 开发系列 - 环境搭建
掌握Rust:从初学者到开发者的成长之路
Rust语言以其内存安全性、高性能和无运行时(No GC)特性,逐渐成为现代系统编程语言的代表。对于像我这样从其他编程语言转向Rust的开发者来说,这是一段充满挑战和收获的旅程。在本文中,我将分享我从零开始学习Rust的过程,讨论在学习中的挑战、心得体会,并展示如何将Rust应用到实际项目中。
一键难忘
2024/08/29
1810
扔掉 Electron,拥抱基于 Rust 开发的 Tauri
Tauri 是一个跨平台 GUI 框架,与 Electron 的思想基本类似。Tauri 的前端实现也是基于 Web 系列语言,Tauri 的后端使用 Rust。Tauri 可以创建体积更小、运行更快、更加安全的跨平台桌面应用。
闻说社
2022/05/07
1.5K0
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
福大大架构师每日一题
2022/07/25
5010
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
Docker - 搭建Mysql PXC高可用集群环境部署
ps:设置如果报错,去配置文件修改,去掉最后的一个逗号,路径vim /etc/docker/daemon.json , 修改配置完,最好重启docker,以避免不必要的错误。
stark张宇
2023/03/05
1.1K0
windows安装配置rust
安装完成后可在D:\rust\.cargo\(取决于CARGO_HOME环境变量)下创建一个config文件(注意没有后缀):
DifficultWork
2024/01/15
6790
docker常用命令总结
个人推荐使用第二种方式,第一种安装方式安装的是 1.13.1 的版本,第二种安装的是最新版,我今天安装完之后是 20.10.8 版本。
栖西
2023/10/17
2700
【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)
近期,笔者正推进公司 MySQL 适配 ARM 64 架构工作,由于一直使用 Docker Hub 上的官方镜像,所以第一时间在 Hub 上检索,却发现官方只为 MySQL 8.0 以上版本提供 ARM 64 镜像。
行者Sun
2024/09/02
7600
【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)
【Rust日报】2020-05-24 Rash, Rocket, Mun, Casbin
Rash是一种受Ansible工具启发的Declarative Shell脚本语言。
MikeLoveRust
2020/05/29
6450
【Rust日报】2024-01-31 RustDesk -- 基于 Rust 的开源远程桌面
RustDesk 是一个基于 Rust 开发的开源远程桌面,TeamViewer 的替代品。RustDesk 开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器, 或者自己设置, 亦或者开发您的版本。
MikeLoveRust
2024/02/17
8680
【Rust日报】2024-01-31 RustDesk -- 基于 Rust 的开源远程桌面
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
福大大架构师每日一题
2022/11/06
5510
2022-07-25:xiu是用rust语言编写的流媒体服务器软件项目。k8s安装xiu,drone文件如何写?
推荐阅读
相关推荐
如此简单,一键绕过主流杀软!MaLoader免杀神器实测详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档