《小鑫发现》之GraphQL框架Prisma

标题

《小鑫发现》之GraphQL框架Prisma

介绍

这是一个新的前后端交互的方案,不是一定是最好的,但是却很有意思,一种可以让前端人员自由去控制数据库,脱离开后端人员开发SQL读取数据库一层。
虽然不见得能解决所有场景,只有善加利用,很可能解决绝大部分的场景,减少人力,提高效率。
很类似之前的hibernate那种对象的形式操作数据库,其实官网的第一句话,就是“Next-generation ORM
for Node.js and TypeScript”,可知他是个ORM,跟mybatis是一类。去理解如何用对象,或者说 用图的形式去描述数据。

版本和下载

node v15.5.1 下载地址
npm 7.3.0 下载地址

小记

本人在研究过程中发现,通过官方的ts教程,一直报错,原因暂时不知道,主要是不会ts,另外也可能是阿里镜像的问题,即使我删了也是不行,所以这个教程,从下载官方的demo开始。咱们分两步,第一步先构建一个脚本的框架,先去试试Prisma的魅力,第二步,构建一个node服务,框架式Express+Prisma,将其服务化,提供给前端。

初次构建

准备工作

此次咱们使用MySQL,
数据库脚本地址 下载地址
这里直接沾出来,数据库名为mydb,加了点自己的小小创意。

CREATE DATABASE IF NOT EXISTS mydb DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
USE mydb;

CREATE TABLE User (
  id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
  name VARCHAR(255),
  email VARCHAR(255) UNIQUE NOT NULL
);
CREATE TABLE Post (
  id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
  title VARCHAR(255) NOT NULL,
  createdAt TIMESTAMP NOT NULL DEFAULT now(),
  content TEXT,
  published BOOLEAN NOT NULL DEFAULT false,
  authorId INTEGER NOT NULL,
  FOREIGN KEY (authorId) REFERENCES User(id)
);
CREATE TABLE Profile (
  id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
  bio TEXT,
  userId INTEGER UNIQUE NOT NULL,
  FOREIGN KEY (userId) REFERENCES User(id)
);


INSERT INTO `mydb`.`Post`(`title`, `createdAt`, `content`, `published`, `authorId`) VALUES ('Hello World', '2021-01-21 15:53:37', NULL, 0, 6);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值