我知道这个标题很傻,但我现在真的很困惑。我来解释一下细节:
我将使用NextJS构建一个新的new应用程序(基本上是反应性的),我希望我的后端使用GraphQL。在搜索一些额外的技术时,我找到了Prisma,但是即使阅读了整个文档和网站,也无法正确理解它。
Nextjs,在BE中使用Nodejs构建GraphQL APIs,使用MongoDB或PostgresQL作为DB。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 足够时,为什么需要?我对他们很困惑,所以我希望问题是清楚的。
发布于 2022-03-16 04:48:30
ORM是一个对象关系映射器。意味着您不必从头开始编写特定的数据库查询
示例原始mongodb查询
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
蒙哥热斯
let character = await Character.findOne({ name: 'Frodo' })普里斯马
const allPosts: Post[] = await prisma.post.findMany()奥姆让你的生活更轻松。如果您喜欢编写原始查询,请继续:)
您可以从中选择的ORM列表
对我来说,我会亲自和普丽斯玛或猫鼬一起去
发布于 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的例子应该是有帮助的。
发布于 2022-07-31 16:07:24
我不相信猫鼬是一个ORM,它是一个ODM。MongoDB本质上是非关系的,它是一个文档数据库.我想把猫鼬也包括在ORM的名单中并不是那么犯罪,但我真的认为区别仍然很重要。
https://stackoverflow.com/questions/71463005
复制相似问题