当前位置: 首页 > wzjs >正文

应聘网站运营建设面试电子商务网站建设详细策划

应聘网站运营建设面试,电子商务网站建设详细策划,1小时赚5000元游戏,网站 建设在作用前面的文章介绍了 GraphQL 的查询操作,但是有时候我们要执行类似下面的这种查询操作,在一个查询中包含多个查询操作并且返回的对象结果相同的时候,重复去写这些属性列表也是比较冗余的事情,那么怎么简化这个写法呢?下面…

前面的文章介绍了 GraphQL 的查询操作,但是有时候我们要执行类似下面的这种查询操作,在一个查询中包含多个查询操作并且返回的对象结果相同的时候,重复去写这些属性列表也是比较冗余的事情,那么怎么简化这个写法呢?下面就看看怎么通过 fragment 来简化这个写法。

query ExampleQuery {allusers: users {idnameemail}firstuser: user(id: 1) {idnameemail}。。。
}

创建 Node.js 的工程

mkdir myapp
cd myapp
npm init (一路回车)

安装依赖包

npm install @apollo/server graphql

定义 Schema

创建 schema.graphql 文件,内容如下:

type User {id: ID!name: String!email: String!
}type Query {users: [User],user(id: ID!): User,
}

schema 文件主要包括:

  1. 定义模型对象:定义了一个User对象,包括 id, name 和 email 属性。
  2. 定义查询操作:定义了两个查询操作,users查询所有用户,user(id)根据id查询用户。

实现处理器

创建 resolvers.js 文件,内容如下:

const user1 = {id: 1, name: 'user1', email: 'user1@gmail.com'};
const user2 = {id: 2, name: 'user2', email: 'user2@gmail.com'};
const user3 = {id: 3, name: 'user3', email: 'user3@gmail.com'};
const users = [user1, user2, user3];const resolvers = {Query: {users: () => users,user(obj, args, context, info) {for (let user of users) {if (user.id == args.id) {return user;}}return null;},},
};module.exports = resolvers;

处理器文件主要包括

  1. 准备测试数据:这里创建了一个 User 对象的数据组并初始化了几条数据。
  2. 定义处理函数:
    users:返回上面初时的 User 数组。
    user(obj, args, context, info):根据传入的 id 在 User 数组中查找,并返回查询结果。

主程序

创建 server.js 文件,内容如下:

const { ApolloServer } =  require('@apollo/server');
const { startStandaloneServer } = require('@apollo/server/standalone');
const fs = require("fs");const typeDefs = fs.readFileSync('./schema.graphql').toString();
const resolvers = require('./resolvers');const server = new ApolloServer({typeDefs,resolvers,
});startStandaloneServer(server).then(function(data) {console.log(`🚀 Server ready at ${data.url}`);
});

测试

启动服务

node server.js

服务启动后,访问 http://localhost:4000 进行测试。

查询操作

查询操作

fragment userfields on User {idnameemail
}
query ExampleQuery {allusers: users {... userfields}firstuser: user(id: 1) {... userfields}
}
  1. 这里定义了一个 fragment,包含了所有需要返回的 User 类型的属性

  2. 在所有需要写返回属性的地方,使用 “…” 操作符来引用上面定义的 fragment。

执行结果

{"data": {"allusers": [{"id": "1","name": "user1","email": "user1@gmail.com"},{"id": "2","name": "user2","email": "user2@gmail.com"},{"id": "3","name": "user3","email": "user3@gmail.com"}],"firstuser": {"id": "1","name": "user1","email": "user1@gmail.com"}}
}

文章转载自:

http://olYbu3Q4.xkgyh.cn
http://NGaehXn9.xkgyh.cn
http://w8b7Jilj.xkgyh.cn
http://6foeSx0Q.xkgyh.cn
http://bgn0THvo.xkgyh.cn
http://gGKQgW68.xkgyh.cn
http://Jg00i3Iz.xkgyh.cn
http://vj7P91AE.xkgyh.cn
http://o5GxfwRm.xkgyh.cn
http://NW9kJ8rS.xkgyh.cn
http://elwOdIH8.xkgyh.cn
http://1K5vB4Oq.xkgyh.cn
http://nvBwsjEF.xkgyh.cn
http://ELCAE5tj.xkgyh.cn
http://3SAjc4WR.xkgyh.cn
http://2QoVUa4s.xkgyh.cn
http://iX4YCWiJ.xkgyh.cn
http://HywktHkc.xkgyh.cn
http://lpcOekJf.xkgyh.cn
http://ebdunoHa.xkgyh.cn
http://DOluPsch.xkgyh.cn
http://9NfDQ7C7.xkgyh.cn
http://0agSEiFw.xkgyh.cn
http://fSumCkyF.xkgyh.cn
http://lsXLfona.xkgyh.cn
http://MohSoDHQ.xkgyh.cn
http://9zvCgnR1.xkgyh.cn
http://cjAm3oli.xkgyh.cn
http://PfUC4JGi.xkgyh.cn
http://Nk8v01pU.xkgyh.cn
http://www.dtcms.com/wzjs/744953.html

相关文章:

  • 北海市建设局官方网站网站策划书ppt
  • 西安网站建设招标跨境电商怎么做视频教程
  • 网站建设跟版网wordpress新窗口打开所有外链
  • 网站开发总体流程图公司取名大全最新版的
  • 外国优秀网站wordpress自定义小工具
  • 山西省建设注册中心网站减粘装置设备设计要点
  • 保利建设开发总公司网站企业有域名怎么做网站
  • 山西做网站贵吗网站打开速度多少时间
  • 做图用哪个素材网站海南做网站的技术公司
  • 工商银行门户网站是什么意思广州天河区建设网站公司
  • html 网站建设中模板wordpress站点地址灰显
  • 德州市建设工程质监站网站卡片式网站
  • 阿里云网站校园网络设计
  • 个旧建设局信息公开门户网站旅游电子商务网站建设的流程
  • 江苏省建设厅网站职称评审系统网站开发用什么软件有哪些
  • wordpress博客收录查询网站建设企业网站优化
  • 做印刷品的素材网站国外对企业网站开发的研究
  • 济宁建设局网站首页购物网站建设的选题意义
  • 为什么要用php做网站cms三合一网站源码
  • 高新区做网站程序员接单网站
  • 找建设项目的网站网站高端建设
  • 南京的网站建设公司哪家好高端建筑班
  • 陕西网页制作公司山东网络优化公司排名
  • iis网站服务被禁用住宅小区物业管理系统网站建设
  • 学校资源网站的建设方案网站模板 小说
  • 深圳网站设计|优选灵点网络网站建设需要的专业知识
  • 网站建设方案 安全用二级域名做网站对seo
  • 杭州萧山做网站wordpress手机app编辑文章
  • 旅游微网站分销电商平台的发展
  • 建立网站的基本流程有哪些步骤兰州市政建设集团办公网站