express-mongoose-api-seed

      • Remove this for your project

express-mongoose-api-seed


This project provides an organized application directory structure from which you can begin your NodeJS project. Use it to host an ExpressJS API using MongooseJS.

  • /app.js: Load and serve API resources

  • /controllers: Contains API endpoint controllers

  • /lib: Contains NodeJS helpers

    • /lib/config.json: Configuration info for port, DB, session, etc.

    • /lib/settings.js: API settings

    • /lib/database.js: Mongoose connection helper

    • /lib/routes.js: API endpoints

    • /lib/utils.js: API helper functions

  • /models: Contains Mongoose models

    • /models/index.js: Declare models to use

    • /models/user.js: User model schema declaration

  • /public: ExpressJS will statically serve this directory, served from memory

  • /tests: Vows test files

    • /tests/data.json: Test data

    • /tests/user-test.js: Create, login, logout, remove user


  • @session_role
  • @body = POST param
  • @param = URL param /user/:param
  • (options)

User

MethodEndpointAction
POST/userCreate User
POST/user/loginLogin User
POST/user/logoutLogout User
GET/user/authAuth User
GET/user/:roleList Users
GET/user/:uidShow User
DELETE/user/:uidDelete User

Create new user

  • @body email
  • @body password (8 - 20 chars, 1+ digit)
  • @body first
  • @body last
  • @body role (user|admin)
{
    "_id": "5307a99ed5539300005a665d",
    "username": "hjboylan",
    "name": "Hugh Boylan",
    "role": "user"
}

Create user session

  • @body email
  • @body password

Same as Show User

Destroy user session

Check if session is valid

List all user with role

  • @param role (user|admin)
[
    {
        "_id": "5307a99ed5539300005a676e",
        "username": "thinkerton",
        "name": "John Barnack",
        "role": "admin"
    }
]

Show user info

  • @param uid
{
    "_id": "5307a99ed5539300005a665d",
    "username": "hjboylan",
    "name": "Hugh Boylan",
    "role": "user"
}

Remove user

  • @body password