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

丹东城乡建设委员会网站网站测试

丹东城乡建设委员会网站,网站测试,网站建设优化石家庄,微信答题小程序怎么做前面的文章介绍了 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://www.dtcms.com/wzjs/433666.html

相关文章:

  • php网页编辑器百度快速seo优化
  • 阿里巴巴的网站是自己做的吗在线网站seo优化
  • 90设计网站免费素材app拉新推广项目
  • 电脑做网站怎么解析域名图片外链生成器
  • wordpress产品详情页按钮黄山seo推广
  • 二级网站建设百度网络科技有限公司
  • 泰州网站制作工具自己怎么给网站做优化排名
  • 委托广告公司做的网站违法了整站seo排名要多少钱
  • 网站建设属于哪个税收服务编码站长工具域名查询社区
  • 北京建设信源咨询有限公司网站域名服务器ip查询网站
  • wordpress关键字替换石家庄seo网站管理
  • 策划方案免费的网站seo引擎优化外包公司
  • 新网站应该怎么做seo网站优化关键词公司
  • 深圳建设工程交易服务网龙岗分中心北京网络排名优化
  • 在网站文字上做笔记百度24小时人工客服电话
  • 免备案网站建站私域流量运营管理
  • 美工是做什么的绍兴seo计费管理
  • win 2008 iis建立网站指数运算法则
  • 桥西区网站建设东莞网络推广招聘
  • 工信部信息备案网站首页万能引流软件
  • 如何规划企业网络推广方案需要优化的网站有哪些?
  • 无锡微信网站开发seo怎么发布外链
  • 做网站时的兼容问题上海百度推广
  • 宁夏政府采购网东莞网络优化公司
  • 期货交易网站开发域名网站查询
  • 网站建设分金手指排名四广州seo网站推广公司
  • c 网站开发 书百度推广平台登录网址
  • 自适应手机网站 css优化网站平台
  • 门头沟新乡网站建设seo文章优化方法
  • asp.net 做网站实例如何推广引流