email or profile name翻译中文

《探索GraphQL框架Prisma之旅》
介绍
这是一个新兴的前后端交互方案,虽然不一定是最佳的,但其有趣之处在于,它让前端开发者能够直接控制数据库,无需依赖后端开发者编写的SQL语句。这种方案有可能解决大部分场景的问题,提高效率和减少人力。它的操作方式类似于之前的hibernate,以对象或图的形式描述数据。正如所述,它是一个为Node.js和TypeScript的下一代ORM(对象关系映射)。
环境准备
node版本:v15.5.1
下载地址:[Node.js中文版](/zh-cn/)
npm版本:7.3.0
下载地址同上。
研究过程
在研究过程中,我尝试按照官方的TypeScript教程进行操作,但遇到了一些报错。由于我不熟悉TypeScript以及可能存在的阿里镜像问题,我决定从下载官方demo开始。我们的第一步是构建一个脚本框架,先体验Prisma的魅力。第二步是构建一个基于Express和Prisma的node服务,将其服务化,供前端使用。
初次构建
准备工作
我们这次使用MySQL数据库。数据库脚本可以直接从官方下载,数据库名为mydb,我做了一些小小的创新。
创建数据库的SQL语句如下:
sql
CREATE DATABASE IF NOT EXISTS mydb DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
USE mydb;
CREATE TAE User (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
name VARCHAR(255),
email VARCHAR(255) UNIQUE NOT NULL
);
CREATE TAE Post (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
title VARCHAR(255) NOT NULL,
createdAt TIMESP NOT NULL DEFAULT now(),
content TEXT,
published BOOLEAN NOT NULL DEFAULT false,
authorId INTEGER NOT NULL,
FOREIGN KEY (authorId) REFERENCES User(id)
);
CREATE TAE Profile (
id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
bio TEXT,
userId INTEGER UNIQUE NOT NULL,
FOREIGN KEY (userId) REFERENCES User(id)
);
然后插入一些测试数据。
下载官方的demo后,目录结构如下:
start 文件夹包含:
package.json(关于项目依赖的配置文件)
prisma(关键目录,包含dev.db和schema.prisma等重要配置)
script.js(本次使用的脚本)
makefile
DATABASE_URL="mysql://root:.0.1:3306/mydb"
然后编辑schema.prisma文件,将provider改为mysql:
css
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
