2021年12月10日
张贴者:Ankit Kanojia
在之前的 article,我们已经讨论了GraphQL的基本概念以及使用node js配置GraphQL.
Now, 在本文中, 我们将使用GraphQL + NodeJs创建REST api,并执行CRUD操作来理解流程工作流.
GraphQL将API请求分为 查询和突变. 查询 它们不会改变数据的状态,只返回结果. 突变,另一方面,帮助修改服务器端数据. 因此,对于CRUD操作,您需要使用查询 读操作 然后发生突变 create, update, or 删除操作.
下表显示了CRUD与GraphQL的关系.
它是一个“假”数据库,允许您将数据存储在JSON文件中. 使用下面的命令安装NPM包.
NPM I notarealdb || yarn添加notarealdb
官方包: notarealdb
开始
在开始之前,请在我之前的文章的帮助下配置初始项目并进行设置. 一旦项目配置完成,我们将一步一步地执行CRUD操作. 这里,将向您展示用简单的用户表进行CRUD操作 Id, FirstName, 姓 伪数据库中的属性.
步骤1
Create user.json 数据文件夹下的文件,我们将其视为假数据库文件. 对于示例数据,我最初在下面添加了JSON对象.
[{
“id”:“S1002”,
“firstName”:“Developer1”,
“姓”:“Developer1”
}, {
“id”:“S1002”,
“firstName”:“Developer2”,
“姓”:“Developer2”
}, {
“id”:“S1003”,
“firstName”:“Developer3”,
“姓”:“Developer3”
}]
步骤2
Add 模式.graphql 文件放入根目录,该文件由方法的定义、表属性等组成.
类型查询{
问候:字符串
用户(用户):
}
类型突变{
createUser(firstName:字符串, 姓:字符串): User!,
deleteUser (id: id!):[用户],
updateUser (id: id!, firstName:字符串!, 姓:字符串!)(用户):
}
type用户{
id: id!firstName:字符串
姓:字符串
}
Step 3
Add db.js 该文件为用户配置路由,电竞赛事竞猜APP导出用户API路由并在其中使用 服务器.js file.
const {
数据存储
} = require('notarealdb');
const store = new 数据存储('./数据”);
module.出口= {
用户:存储.收集(“用户”)
};
步骤4
Create 解析器.js 根目录下的文件. 解析器是 为模式中的类型或字段定义值的函数. 解析器将返回数字、对象、字符串、布尔值等. 连接数据库或数据库迭代的定义在解析器文件中完成.
读操作
const {
数据存储
} = require('notarealdb');
const store = new 数据存储('./数据”);
const Query = {
users: () => store.收集(“用户”).列表(),
}
module.出口= {
Query
}
创建操作
const {
数据存储
} = require('notarealdb');
const store = new 数据存储('./数据”);
const 突变 = {
//在用户列表中创建新用户
createUser: (root, args, context, info) => {
让userObj = store.集合(“用户”);
让idCount = userObj.list().长度;
const newUser = {
id: $ {idCount + +},
firstName:参数.firstName,
姓:参数.姓
}
userObj.创建(列出);
返回分类列出
},
}
module.出口= {
突变
}
更新操作
const {
数据存储
} = require('notarealdb');
const store = new 数据存储('./数据”);
const 突变 = {
//根据id更新用户详情
updateUser: (root, args, context, info) => {
让userList =存储.集合(“用户”);
userList.更新({
id:参数.id,
firstName:参数.firstName,
姓:参数.姓
});
返回userList.list()
},
}
module.出口= {
突变
}
删除操作
const {
数据存储
} = require('notarealdb');
const store = new 数据存储('./数据”);
const 突变 = {
//从列表中删除指定用户
deleteUser: (root, args, context, info) => {
让userList =存储.集合(“用户”);
userList.删除(arg游戏.id);
返回userList.list()
}
}
module.出口= {
突变
}
这是你的 解析器.js 文件看起来像.
const {
数据存储
} = require('notarealdb');
const store = new 数据存储('./数据”);
const Query = {
//获取用户列表
users: () => store.收集(“用户”).列表(),
}
const 突变 = {
//在用户列表中创建新用户
createUser: (root, args, context, info) => {
让userObj = store.集合(“用户”);
让idCount = userObj.list().长度;
const newUser = {
id: $ {idCount + +},
firstName:参数.firstName,
姓:参数.姓
}
userObj.创建(列出);
分享这