/realWorld-server

The server-side of realWorld project using Express.js and MongoDB

Primary LanguageJavaScript

RealWorld Example App

Express.js + MongoDB + JavaScript codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API.

This codebase was created to demonstrate a fully fledged fullstack application built with Express.js + MongoDB + JavaScript including CRUD operations, authentication, routing, pagination, and more.

We've gone to great lengths to adhere to the Express.js + MongoDB + JavaScript community styleguides & best practices.

For more information on how to this works with other frontends/backends, head over to the RealWorld repo.

Getting started

  1. install npm
  2. Run npm install in the project folder
  3. Run npm run dev for dev mode and npm run start for regualr mode

How it works

All the routes are defined in the src/routes folder, and their corresponding controllers are implemented in the src/controllers folder.

Design Choices and Tradeoffs

  • Only one access_token_secret is used for all the accounts registration and login. Drawback: data can be forged if this secret is leaked
  • Included array structures, e.g. list of comments in the article model and favorited articles in the user model. Drawback: not good for scalability
  • Usernames are case-sensitive