首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prisma ORM堆栈适合新的webapp (Nextjs + Nodejs)吗?

Prisma ORM堆栈适合新的webapp (Nextjs + Nodejs)吗?
EN

Stack Overflow用户
提问于 2022-03-14 04:30:08
回答 3查看 2.8K关注 0票数 1

我知道这个标题很傻,但我现在真的很困惑。我来解释一下细节:

我将使用NextJS构建一个新的new应用程序(基本上是反应性的),我希望我的后端使用GraphQL。在搜索一些额外的技术时,我找到了Prisma,但是即使阅读了整个文档和网站,也无法正确理解它。

  1. 在传统的应用程序中,我们有前端后端数据库,它们是we应用程序的三个重要部分
  2. 我可以在FE中使用Nextjs,在BE中使用Nodejs构建GraphQL APIs,使用MongoDBPostgresQL作为DB。
  3. 现在我们有了Prisma。当我在寻找一些外派时,我的脑海中有一些东西在成长: Prisma就像Nodejs应用程序中LinQ的一个版本吗? 3.2 NextJS (FE)可以使用Prisma从DB→查询数据,BE部件在哪里?Prisma被认为是吗? 3.3谈到可伸缩性,如果我想构建一个与webapp同步的新移动应用程序,我将没有后端可重用,必须从头开始实现所有内容:比如React Native + Prisma,对吗? 3.4我还发现了一些其他示例,表明我们可以在Nodejs应用程序(BE)中使用Prisma来构建API。当Prisma Nodejs + MongoDB 足够时,为什么需要?

我对他们很困惑,所以我希望问题是清楚的。

EN

回答 3

Stack Overflow用户

发布于 2022-03-16 04:48:30

ORM是一个对象关系映射器。意味着您不必从头开始编写特定的数据库查询

示例原始mongodb查询

代码语言:javascript
复制
db.mycol.findOne({title: "MongoDB Overview"})
{
    "_id" : ObjectId("5dd6542170fb13eec3963bf0"),
    "title" : "MongoDB Overview",
    "description" : "MongoDB is no SQL database",
    "by" : "tutorials point",
    "url" : "http://www.tutorialspoint.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}

使用ORM,如Mongoosejs或Prisma

蒙哥热斯

代码语言:javascript
复制
let character = await Character.findOne({ name: 'Frodo' })

普里斯马

代码语言:javascript
复制
const allPosts: Post[] = await prisma.post.findMany()

奥姆让你的生活更轻松。如果您喜欢编写原始查询,请继续:)

您可以从中选择的ORM列表

  1. https://typeorm.io/#/
  2. https://mongoosejs.com/
  3. https://www.prisma.io/
  4. https://sequelize.org/

对我来说,我会亲自和普丽斯玛或猫鼬一起去

  1. 您可以从Next.js调用Prisma,但最好从node.js API调用它。如果这是个小项目,那就用Next.js和Prisma吧
  2. 您可以使用react本机和node.js作为后端。当然,对于ORM,您可以选择上面的任何一个ORM
  3. 当涉及到可伸缩性时,我认为您不应该首先考虑这个问题,因为它更倾向于AWS这样的基础设施。我建议您将Vercel用于Next.js,Heroku用于Node.js api。
  4. 您可以使用AWS中的RDS来旋转您的PostgreSQL或MySQL
  5. 您可以从mongodb地图集中派生出mongodb数据库。
票数 4
EN

Stack Overflow用户

发布于 2022-03-15 10:32:51

Prisma是一个数据库工具包,所以这肯定是后端的一部分。

数据库工具包涉及Prisma (基本上您不必在GraphQL API中编写原始的GraphQL查询来从数据库中获取数据,Prisma将为您完成)。您将在GraphQL查询中编写Prisma查询以获取数据,并编写突变以创建数据。

Next.js模糊了客户机和服务器之间的界限。您可以在前端使用Next.js在getStaticProps()getServerSideProps()API Routes中使用Prisma,但在您的示例中,这是不可扩展的,因为移动应用程序不能使用这些方法。相反,一个独立的服务器会更好,您的GraphQL API既可以被Next.js Web使用,也可以被应用程序使用。

通过使用Prisma以及Node.js和MongoDB,可以加快构建应用程序的速度,因为Prisma使用基于模型的PrismaClient公开CRUD和其他聚合操作。

这个正式的使用带GraphQL和Next.js的Prisma的例子应该是有帮助的。

票数 2
EN

Stack Overflow用户

发布于 2022-07-31 16:07:24

我不相信猫鼬是一个ORM,它是一个ODM。MongoDB本质上是非关系的,它是一个文档数据库.我想把猫鼬也包括在ORM的名单中并不是那么犯罪,但我真的认为区别仍然很重要。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71463005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档