Nyx*_*nyx 2 apollo graphql apollo-client prisma prisma-graphql
我刚刚学习了如何使用graphql-yoga并prisma-binding基于HowToGraphQL 教程来创建 GraphlQL 服务器。
问题:目前查询数据库的唯一方法是使用通过运行命令启动的 Prisma Playground 网页graphql playground。
是否可以从 Node.js 脚本执行相同的查询?我遇到了 Apollo 客户端,但它似乎是为了从 React、Vue、Angular 等前端层使用。
这是绝对可能的,最终 Prisma API 只是普通的 HTTP,您可以将查询放入请求正文中POST。
因此,您也可以在 Node 脚本中使用fetch或prisma-binding。
查看本教程以了解更多信息:https : //www.prisma.io/docs/tutorials/access-prisma-from-scripts/access-prisma-from-a-node-script-using-prisma-bindings-vbadiyyee9
这也可能有帮助,因为它解释了如何使用fetch查询 API:https : //github.com/nikolasburk/gse/tree/master/3-Use-Prisma-GraphQL-API-from-Code
这是使用的fetch样子:
const fetch = require('node-fetch')
const endpoint = '__YOUR_PRISMA_ENDPOINT__'
const query = `
query {
users {
id
name
posts {
id
title
}
}
}
`
fetch(endpoint, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query: query })
})
.then(response => response.json())
.then(result => console.log(JSON.stringify(result)))
Run Code Online (Sandbox Code Playgroud)
如果您想使用轻量级包装器来fetch避免编写样板,请务必查看graphql-request.
以下是您如何使用 Prisma 绑定:
const { Prisma } = require('prisma-binding')
const prisma = new Prisma({
typeDefs: 'prisma.graphql',
endpoint: '__YOUR_PRISMA_ENDPOINT__'
})
// send `users` query
prisma.query.users({}, `{ id name }`)
.then(users => console.log(users))
.then(() =>
// send `createUser` mutation
prisma.mutation.createUser(
{
data: { name: `Sarah` },
},
`{ id name }`,
),
)
.then(newUser => {
console.log(newUser)
return newUser
})
.then(newUser =>
// send `user` query
prisma.query.user(
{
where: { id: newUser.id },
},
`{ name }`,
),
)
.then(user => console.log(user))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1188 次 |
| 最近记录: |