阿波罗服务器入门

λ yarn add --dev @babel/core @babel/cli @babel/preset-env
λ yarn add --dev nodemon // "start": "nodemon --exec babel-node index.js"
λ yarn add apollo-server graphql express
http://localhost:4000/?query={hello}
const { gql, ApolloServer } = require("apollo-server");
const _ = require("lodash");
const cats = [{ id: 1, name: "a" }, { id: 2, name: "b" }, { id: 3, name: "c" }];
const l = console.log;
const typeDefs = gql`
type Query {
cats: [Cat]
findCat(id: ID!): Cat
} type Mutation {
addCat(cat: InputCat): Cat
changeCat(id: ID!, name: String): Cat
} input InputCat {
name: String
} type Cat {
id: String
name: String
}
`; const resolvers = {
Query: {
cats: (parent, args, context, info) => {
return cats;
}, findCat(parent, args, context, info) {
const { id } = args;
return _.find(cats, { id: +id });
},
},
Mutation: {
addCat(parent, args, context, info) {
const { cat } = args;
cats.push({
...cat,
id: _.size(cats),
});
return _.last(cats);
},
changeCat(parent, args, context, info) {
l(args);
const { id, name } = args;
cats[_.findIndex(cats, ["id", +id])].name = name;
return _.find(cats, ["id", +id]);
},
},
}; const server = new ApolloServer({
typeDefs,
resolvers,
}); server.listen().then(({ url }) => {
console.log(` Server ready at ${url}`);
});
get: http://localhost:4000/?query={cats { id name }}
get: http://localhost:4000/?query={ findCat(id: 1) { name } }

express+apollo+mongodb的更多相关文章

  1. Node.js、express、mongodb 实现分页查询、条件搜索

    前言 在上一篇Node.js.express.mongodb 入门(基于easyui datagrid增删改查) 的基础上实现了分页查询.带条件搜索. 实现效果 1.列表第一页. 2.列表第二页 3. ...

  2. React+Node.js+Express+mongoskin+MongoDB

    首发:个人博客,更新&纠错&回复 采用React + Node.js + Express + mongoskin + MongoDB技术开发的一个示例,演示地址在这里,项目源码在这里. ...

  3. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录

    最近用vue2做了一个微信商城项目,因为做的比较仓促,所以一边写一下整个流程,一边稍做优化. 项目github地址:https://github.com/seven9115/vue-fullstack ...

  4. 使用的vue、elementUI、vuex、express、mongoDB的单页应用

    基于vue.vuex.express.mongodb的一个单页应用,包括前后端,前端主要是使用vue,后端是node的express,数据库是使用的mongodb 1.下载使用 git clone h ...

  5. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(二)

    用mogoose搭建restful测试接口 接着上一篇(Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一))记录,今天单独搭建一个restful测试接口,和项目前 ...

  6. Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一)

    最近用vue2做了一个微信商城项目,因为做的比较仓促,所以一边写一下整个流程,一边稍做优化. 项目github地址:https://github.com/seven9115/vue-fullstack ...

  7. react + node + express + ant + mongodb 的简洁兼时尚的博客网站

    前言 此项目是用于构建博客网站的,由三部分组成,包含前台展示.管理后台和后端. 此项目是基于 react + node + express + ant + mongodb 的,项目已经开源,项目地址在 ...

  8. 关于express 连接 mongodb数据库报错

    关于express 连接 mongodb数据库报错 nodejs DeprecationWarning: current URL string parser is deprecated, and wi ...

  9. Node.js、express、mongodb 入门(基于easyui datagrid增删改查)

    前言 从在本机(win8.1)环境安装相关环境到做完这个demo大概不到两周时间,刚开始只是在本机安装环境并没有敲个Demo,从周末开始断断续续的想写一个,按照惯性思维就写一个增删改查吧,一方面是体验 ...

随机推荐

  1. 2021年,python的入门基础-----基础一

    先记录下pycharm编译器相关的信息 1.某些常用快捷键: Ctrl+/ 注释: Tab缩进,shift+Tab; Ctrl+Z 撤销 2.设置界面编辑风格: File>Settings> ...

  2. java校验导入的模板

    /** * 验证导入模板的正确性 InputStream inputStream = file.getInputStream(); */ @SuppressWarnings("depreca ...

  3. 2.DHCP的基本概念

    1.DHCP典型组网 DHCP组网中,包括以下三种角色: DHCP服务器 DHCP服务器负责从地址池中选择IP地址分配至DHCP客户端,还可以为DHCP客户端提供其他网络参数,如默认网关地址.DNS服 ...

  4. 小白搭建WNMP详细教程---NGINX安装与设置

    一.Nginx下载 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramble ...

  5. docker学习二

    B站视频地址 3.docker的基本操作 3.1 安装docker 1.下载关于Docker的依赖环境 想安装Docker,需要先将依赖的环境全部下载下来,就像Maven依赖JDK一样 yum -y ...

  6. C#委托的进一步学习

    一.委托的说明 namespace LearningCsharp { class Program { //定义一个委托,使用delegate加上方法签名 //将委托理解为存储方法的"数组&q ...

  7. 理解了这三点,才敢说自己会写Python代码

    某同学应聘Python岗位被录用.上班第一天,Leader吩咐他写一个获取次日日期信息的函数.该同学信心满满地写下了这样一段代码, 然后就没有然后了. import time def get_next ...

  8. Uva 10815 Andy's First Dictionary(字符串)

    题目链接:https://vjudge.net/problem/UVA-10815 题意 找出一段文本中的所有单词,以小写形式按照字典序输出. 思路 用空白符替换文本中所有非字母字符后再次读入. 代码 ...

  9. 2020 ICPC Asia Taipei-Hsinchu Regional Problem H Optimization for UltraNet (二分,最小生成树,dsu计数)

    题意:给你一张图,要你去边,使其成为一个边数为\(n-1\)的树,同时要求树的最小边权最大,如果最小边权最大的情况有多种,那么要求总边权最小.求生成树后的所有简单路径上的最小边权和. 题解:刚开始想写 ...

  10. Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland

    time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standa ...