All Projects → FrontendMasters → Api Design Node V3

FrontendMasters / Api Design Node V3

[Course] API design in Node with Express v3

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Api Design Node V3

Nodejs Restful Api
How to create a RESTful CRUD API using Nodejs?
Stars: ✭ 285 (-37.91%)
Mutual labels:  rest, mongoose, mongodb, express
Node Express Mongodb Jwt Rest Api Skeleton
This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API). Demo of frontend in VueJS here: https://github.com/davellanedam/vue-skeleton-mvp
Stars: ✭ 603 (+31.37%)
Mutual labels:  rest, mongoose, mongodb, express
Blog Node
基于 node + express + mongodb 的博客网站后台
Stars: ✭ 364 (-20.7%)
Mutual labels:  mongoose, mongodb, express
Node Express Mongoose Passport Jwt Rest Api Auth
Node, express, mongoose, passport and JWT REST API authentication example
Stars: ✭ 146 (-68.19%)
Mutual labels:  rest, mongoose, express
Bookmarks.dev
Bookmarks and Code Snippets Manager for Developers & Co
Stars: ✭ 218 (-52.51%)
Mutual labels:  rest, mongoose, mongodb
Appy Backend
A user system to bootstrap your app.
Stars: ✭ 96 (-79.08%)
Mutual labels:  rest, mongoose, mongodb
Rest
REST API generator with Node.js, Express and Mongoose
Stars: ✭ 1,663 (+262.31%)
Mutual labels:  rest, mongoose, mongodb
Fullstackopen
Exercises for the Full Stack Open course.
Stars: ✭ 214 (-53.38%)
Mutual labels:  rest, mongodb, express
Rest Hapi
🚀 A RESTful API generator for Node.js
Stars: ✭ 1,102 (+140.09%)
Mutual labels:  rest, mongoose, mongodb
Jianshu
仿简书nx+nodejs+nestjs6+express+mongodb+angular8+爬虫
Stars: ✭ 296 (-35.51%)
Mutual labels:  mongoose, mongodb, express
Express Graphql Mongodb Boilerplate
A boilerplate for Node.js apps / GraphQL-API / Authentication from scratch - express, graphql - (graphql compose), mongodb (mongoose).
Stars: ✭ 288 (-37.25%)
Mutual labels:  mongoose, mongodb, express
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (-13.07%)
Mutual labels:  mongoose, mongodb, express
Bulletproof Nodejs
Implementation of a bulletproof node.js API 🛡️
Stars: ✭ 4,369 (+851.85%)
Mutual labels:  mongoose, mongodb, express
Node Typescript Mongodb
node js typescript mongodb express generator yo
Stars: ✭ 96 (-79.08%)
Mutual labels:  rest, mongoose, mongodb
Nodejs Api Boilerplate
A boilerplate for kickstart your nodejs api project with JWT Auth and some new Techs :)
Stars: ✭ 364 (-20.7%)
Mutual labels:  mongoose, mongodb, express
Typerx
A lightweight typescript annotation rest based extra (express、 mongoose、 angular、zorro、ng-alain ...).
Stars: ✭ 76 (-83.44%)
Mutual labels:  rest, mongodb, express
Koa Restful Boilerplate
Koa 2 RESTful API boilerplate
Stars: ✭ 146 (-68.19%)
Mutual labels:  rest, mongoose, mongodb
Rest Api Nodejs Mongodb
A boilerplate for REST API Development with Node.js, Express, and MongoDB
Stars: ✭ 672 (+46.41%)
Mutual labels:  rest, mongodb, express
Nest Angular
NestJS, Angular 6, Server Side Rendering (Angular Universal), GraphQL, JWT (JSON Web Tokens) and Facebook/Twitter/Google Authentication, Mongoose, MongoDB, Webpack, TypeScript
Stars: ✭ 307 (-33.12%)
Mutual labels:  mongoose, mongodb, express
Securing Restful Apis With Jwt
How to secure a Nodejs RESTful CRUD API using JSON web tokens?
Stars: ✭ 301 (-34.42%)
Mutual labels:  mongoose, mongodb, express

Course Code for API design in Node.js with Express, v3

Scott Moss & Frontend Masters

Resources

Course

This course has two parts, slides and excercises. The slides describe the excerices in detail. Each excercise has a starting branch and solution branch. Example lesson-1 and lesson-1-solution.

Exercises

Hello world Express

  • branch - lesson-1

In this lesson you'll be creating a simple Express based API in node, just to get your feet wet.

  • [ ] install dependencies with yarn (prefered for version locking) or npm
  • [ ] create a route that sends back some json
  • [ ] create a route that accepts json and logs it
  • [ ] start the server

Routing

  • branch - lesson-2
  • test command - yarn test-routes or npm run test-routes

This exercise will have you creating routes and sub routers for our soon the be DB resources using Express routing and routers

  • [ ] create a router for the Item resource
  • [ ] create full crud routes and create placeholder controllers
  • [ ] mount router on the root server
  • [ ] ensure all tests pass by running test command

Create Schemas

  • branch - lesson-3
  • test command - yarn test-models or npm run test-models

In this exercise, you'll be taking what you learned about Mongoose and MongoDb to create a schema and model for the Item resource.

  • [ ] create a schema for the item resource
  • [ ] add the correct fields (look at test)
  • [ ] add the correct validations (look at test)
  • [ ] extra add compund index to ensure all tasks in a list have unique names
  • [ ] ensure all tests pass by running test command

Controllers

  • branch - lesson-4
  • test command - yarn test-controllers or npm run test-controllers

So far we have routes and models. Now we need to hook our routes up to our models so we can perfom CRUD on the models based on the routes + verbs. That's exactly what controllers do.

  • [ ] create CRUD resolvers in utils/crud.js
  • [ ] create controllers for the Item resources using the base crud resolvers
  • [ ] ensure all tests pass by running test command

Authentication

  • branch - lesson-5
  • test command - yarn test-auth or npm run test-auth

In this exercise you'll be locking down our API using JWT's.

  • [ ] create a signup controller
  • [ ] create a signin controller
  • [ ] create a protect middlware to lock down API routes
  • [ ] ensure all tests pass by running test command

Testing

THe other resources don't have any test, go ahead and write some!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].