前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GraphQL实现(后端:Node.js + GraphQL + Express)

GraphQL实现(后端:Node.js + GraphQL + Express)

原创
作者头像
種法龍
发布2023-12-28 16:29:25
1430
发布2023-12-28 16:29:25
举报
文章被收录于专栏:未知未知

后端(Node.js + GraphQL + Express):

代码语言:javascript
复制
// server.js

const express = require('express');
const { ApolloServer, gql } = require('apollo-server-express');
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/taskapp', { useNewUrlParser: true, useUnifiedTopology: true });

const Task = mongoose.model('Task', {
  title: String,
  description: String,
});

const typeDefs = gql`
  type Task {
    _id: ID!
    title: String!
    description: String
  }

  type Query {
    tasks: [Task]
    task(id: ID!): Task
  }

  type Mutation {
    createTask(title: String!, description: String): Task
  }
`;

const resolvers = {
  Query: {
    tasks: () => Task.find(),
    task: (_, { id }) => Task.findById(id),
  },
  Mutation: {
    createTask: (_, { title, description }) => Task.create({ title, description }),
  },
};

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

const app = express();
server.applyMiddleware({ app });

const PORT = 4000;
app.listen({ port: PORT }, () =>
  console.log(`Server running at http://localhost:${PORT}${server.graphqlPath}`)
);

确保安装相应的依赖,如@apollo/client, react-router-dom等。在实际项目中,可能需要更复杂的状态管理、错误处理和安全性实现。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档