前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >koa2 + apollo-server-koa + mongoose 接口

koa2 + apollo-server-koa + mongoose 接口

作者头像
4O4
发布2022-04-25 16:35:34
3300
发布2022-04-25 16:35:34
举报
文章被收录于专栏:404404

koa2 + apollo-server-koa + mongoose 接口

代码语言:javascript
复制
yarn add koa koa-router koa-body apollo-server-koa@rc

app.js

代码语言:javascript
复制
// app.js
const { ApolloServer, gql } = require('apollo-server-koa');
const Koa = require('koa');
const Router = require('koa-router');
const body = require('koa-body');
const app = new Koa();
const router = new Router();

router.get('/', ctx => {
    ctx.body = 'hello';
});

const books = [{
    title: 'Harry Potter and the Chamber of Secrets',
    author: 'J.K. Rowling',
}, {
    title: 'Jurassic Park',
    author: 'Michael Crichton',
}];


const typeDefs = gql`
  # 模型
  type Book {
    title: String
    author: String
  }

  # 查询
  type Query {
    books: [Book]
  }
`;

// 解析器(决定查询,突变)返回什么数据
const resolvers = {
    Query: {
        books: () => books,
    },
};

const server = new ApolloServer({ typeDefs, resolvers });

// 这里把 server 绑定到 koa 路由里
server.applyMiddleware({ app });

app.use(body()).use(router.routes());
app.listen(3010, () => {
    console.log(`🚀 Server ready at http://localhost:3010${server.graphqlPath}`);
});

node app.js => open 'http://localhost:3010/graphql'

代码语言:javascript
复制
{
  books {
    title,
    author
  }
}

// get result ==>

{
  "data": {
    "books": [
      {
        "title": "Harry Potter and the Chamber of Secrets",
        "author": "J.K. Rowling"
      },
      {
        "title": "Jurassic Park",
        "author": "Michael Crichton"
      }
    ]
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • koa2 + apollo-server-koa + mongoose 接口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档