Wasp全棧 Web 框架
Wasp (Web Application Specification) 是類(lèi)似 Rails 的全棧 Web 框架,使用了 React, Node.js 和 Prisma,通過(guò)自帶的 CLI 工具即可應(yīng)用程序部署到任何平臺(tái)。
優(yōu)點(diǎn):
- 快速入門(mén):你可以從頭開(kāi)始創(chuàng)建和部署生產(chǎn)就緒的 Web 應(yīng)用程序,只需幾行簡(jiǎn)潔、一致的聲明性代碼。
- No boilerplate:通過(guò)抽象出復(fù)雜的全棧功能,boilerplate code 更少。這意味著需要維護(hù)和理解的代碼更少,也意味著更容易升級(jí)。
- No lock-in:你可以在任何喜歡的地方部署 Wasp 應(yīng)用程序。沒(méi)有鎖定到特定的 providers,你可以完全控制代碼(如果你有興趣,可以在 .wasp/ 目錄中檢查它)。
特性:
- 全棧認(rèn)證:使用強(qiáng)大的 UI 助手在幾行代碼中添加社交提供商的登錄名或電子郵件。沒(méi)有第三方供應(yīng)商鎖定。
- RPC (Client <-> Server):Wasp 提供了一個(gè)類(lèi)型安全的 RPC 層,可以立即將你的數(shù)據(jù)模型和服務(wù)器邏輯傳輸?shù)娇蛻舳恕?/span>
- 簡(jiǎn)單部署:將你的應(yīng)用程序部署到任何平臺(tái)。Wasp 為最流行的選項(xiàng)提供 CLI 助手。
- Jobs:輕松定義、安排和運(yùn)行專(zhuān)門(mén)的服務(wù)器任務(wù)。持久的、可重試的、可延遲的。
- 電子郵件發(fā)送:你要做的就是連接電子郵件供應(yīng)商,然后就可以發(fā)送電子郵件了。
- 全棧類(lèi)型安全:完全支持 TypeScript 以及跨越整個(gè)堆棧的自動(dòng)生成的類(lèi)型。
- 以及自定義 API 路由、數(shù)據(jù)庫(kù)播種、樂(lè)觀更新、客戶端自動(dòng)緩存失效……
核心是 Wasp 編譯器,它采用 Wasp 配置和你的 Javascript 代碼并輸出客戶端應(yīng)用程序、服務(wù)器應(yīng)用程序和部署代碼。
工作原理
示例代碼
// file: main.wasp
app todoApp {
title: "ToDo App", // visible in the browser tab
wasp: { version: "^0.10.0" },
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=}評(píng)論
圖片
表情
