Giter VIP home page Giter VIP logo

apollo-server-demo's Introduction

This is Node.js with GraphQL and Appolo Server, it uses Postgres Databse with Sequilizer (ORM) to store Users and Messages informations. The server accepts Query and Mutaion from React Apollo client

Features

  • User Signup
  • User login
  • Create message
  • Delete message

Screenshots

  • doc/playground_screenshots/signIn.png
  • doc/playground_screenshots/create_message.png
  • doc/playground_screenshots/list_users.png

Main Components

1) index.js

  • Create ApolloServer listen to http://localhost:8000/graphql')
  • Create context object with authenticate token, models, ...
  • Create a few users
  • Create messages belong to users

2) schema

user
  • define query for find users
  • define mutation to create users
message
  • define query for find messages
  • define mutation to create message
  • define mutation to delete message

3) resolvers

authorization

Check role for "ADMIN" or "USER"

user

Use Sequlize (ORM) to communicate with Postgres database

user Query
  • use models.UserfindByIPk(id) to find user with id
  • use models.UserfindAll() for all users
user Mutation
  • signUp: username, email, password
  • signIn: username and password

4) models

Define user schema in Postgres database

User

username, email, password, role User.hasMany messages

Message

text, userId Message.belongsTo Use

5) loaders

Uses to preload users into local cache to reduce number of requests to database

apollo-server-demo's People

Contributors

kieuhua avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.