找回密码
 注册免广告
搜索
长桥证券羊毛 📈熊猫速汇 50 元券 🔥ByBit 交易所羊毛🐑MyFin 5 欧元羊毛 🔥
人人必备的 Wise 💳英、德、香港转运 📦,送 $25币安手续费 9 折Ledger 硬件钱包送比特币
最便宜的 eSIM 流量手机号 📱数字货币银行卡,注册送 7 美元💲IBKR开户送 $1000 股票 
查看: 131|回复: 0

[nextjs] prisma + nextjs + neon

[复制链接]
HelloWorld 发表于 2025-3-23 15:28:26 | 显示全部楼层 |阅读模式

注册免广告

您需要 登录 才可以下载或查看,没有账号?注册免广告

×
本帖最后由 HelloWorld 于 2025-3-24 12:10 编辑

之前没用过 prisma,这次做新项目用一下,发现挺好用

在 prisma/schema.prisma 文件配置好数据库结构,用 schema 的 push 命令即可更新到数据库里,push 后还会自动生成 client 到 node_modules 文件夹

数据库结构可以用 @relation 装饰器去关联其它表,省去了连表查询

prisma 使用方法很简单,直接告诉 ChatGPT o3-mini-high prisma 版本号,他会一步步教你集成到 nextjs

此外就是 neon 云数据库,vercel 主推,有点坑:https://shuzijumin.com/thread-6292-1-1.html
不过作为小体量应用,也算方便,管理后台 console.neon.tech 用起来也算顺手

prisma 因为每次编译前都需要生成 client,所以 vercel 自动部署脚本要改成 npx prisma generate && next build,否则自动部署会失败

项目中还用到 react-query 作为数据缓存,用 zod 检查数据类型,用 react-hook-form 构建表单,后端密码加密用的是 argon2,鉴权用 cookie 里的 httponly jwt token,并设置仅 https 可用
前端就不要用 argon2 了,因为同一个密码,每次生成的字符串都不一样,前端要么直接传明文,要么用 sha256 之类的固定输出的哈希
jwt token 放 cookie httponly 两个,好处,一个是不用担心前端被第三方 js 读取,另一个是构建 api 请求,cookie 自动传更方便,而且 cookie 本身也有过期机制

貌似用了 react-query 缓存数据后,如果前端没有复杂的跨界面数据交互的话,都不需要用 mobx 等状态管理了,直接去 react-query 的 hook 拿数据就好

项目框架用 v0.dev 搭建,它默认用了 radix-ui 组件库以及 next@15react@19

在开发注册登录页面时,本来打算用谷歌的 reCAPTCHA 防刷,免费版一个月 1 万次,开发完突然意识到,大陆无法访问谷歌域名,reCAPTCHA 大陆用不了,于是改用其它方案
下次验证码打算试试 Cloudflare Turnstile,这个完全免费
或者用 svg-captcha 这种完全不依赖第三方的 npm 包,虽然这个项目好几年没维护,不过功能挺正常
如果帖子/回帖帮助到你,请给作者评分/点赞
您需要登录后才可以回帖 登录 | 注册免广告

本版积分规则

排行榜|意见建议|数字居民论坛

GMT+8, 2025-4-2 14:36

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表