React Node.js 和 Prisma 构建全栈框架

特点

  • 快速入门:由于其表现力强,您可以使用很少的简洁、一致的声明性代码从头开始创建和部署生产就绪的 Web 应用程序。
  • 无样板代码:通过抽象出复杂的全栈功能,可以减少样板代码。这意味着需要维护和理解的代码更少!这也意味着更容易升级。
  • 无锁定:您可以将此框架上的应用程序部署在任何您喜欢的地方。不存在特定提供商的锁定,您可以完全控制代码。
  • 全栈身份验证
  • RPC(客户端<->服务器)
  • 简单部署
  • 作业
  • 电子邮件发送
  • 全栈类型安全

代码片段

javascript 复制代码
app todoApp {
  title: "ToDo App",  // visible in the browser tab
  auth: { // full-stack auth out-of-the-box
    userEntity: User, methods: { email: {...} }
  }
}

route RootRoute { path: "/", to: MainPage }
page MainPage {
  authRequired: true, // Limit access to logged-in users.
  component: import Main from "@client/Main.tsx" // Your React code.
}

query getTasks {
  fn: import { getTasks } from "@server/tasks.js", // Your Node.js code.
  entities: [Task] // Automatic cache invalidation.
}

entity Task {=psl  // Your Prisma data model.
    id          Int     @id @default(autoincrement())
    description String
    isDone      Boolean @default(false)
psl=}

在配置中定义您的应用程序并获取:

  • 使用 Auth UI 组件登录和注册,
  • 全栈式安全
  • 电子邮件发送
  • 异步处理作业
  • React Query 支持数据获取
  • 安全最佳实践

假设您想要构建一个 Web 应用程序,允许用户创建和分享他们最喜欢的食谱。

让我们从此件开始:它是应用程序的中心文件,您可以在其中从高层描述应用程序。

让我们给我们的应用程序一个标题,然后立即通过用户名和密码打开全栈身份验证:

javascript 复制代码
app RecipeApp {
  title: "My Recipes",
  auth: {
    methods: { usernameAndPassword: {} },
    onAuthFailedRedirectTo: "/login",
    userEntity: User
  }
}

然后让我们为您的食谱添加数据模型。我们希望用户和用户可以拥有食谱:

javacript 复制代码
...

entity User {=psl  // Data models are defined using Prisma Schema Language.
  id          Int @id @default(autoincrement())
  username    String @unique
  password    String
  recipes     Recipe[]
psl=}

entity Recipe {=psl
  id          Int @id @default(autoincrement())
  title       String
  description String?
  userId      Int
  user        User @relation(fields: [userId], references: [id])
psl=}

框架链接

参阅 - 亚图跨际
相关推荐
行者无疆_ty5 小时前
什么是Node.js,跟OpenCode/OpenClaw有什么关系?
人工智能·node.js·openclaw
-凌凌漆-5 小时前
【npm】npm的-D选项介绍
前端·npm·node.js
lucky67075 小时前
Windows 上彻底卸载 Node.js
windows·node.js
Android系统攻城狮7 小时前
鸿蒙系统Openharmony5.1.0系统之解决编译时:Node.js版本不匹配问题(二)
node.js·鸿蒙系统·openharmony·编译问题·5.1
早點睡3907 小时前
高级进阶 ReactNative for Harmony 项目鸿蒙化三方库集成实战:react-native-drag-sort
react native·react.js·harmonyos
C澒7 小时前
Vue 项目渐进式迁移 React:组件库接入与跨框架协同技术方案
前端·vue.js·react.js·架构·系统架构
清山博客8 小时前
OpenCV 人脸识别和比对工具
前端·webpack·node.js
发现一只大呆瓜9 小时前
虚拟列表:从定高到动态高度的 Vue 3 & React 满分实现
前端·vue.js·react.js
何中应9 小时前
nvm安装使用
前端·node.js·开发工具
全栈探索者9 小时前
列表渲染不用 map,用 ForEach!—— React 开发者的鸿蒙入门指南(第 4 期)
react.js·harmonyos·arkts·foreach·列表渲染