express-mongoose-api-seed

- - - ###### *Remove this for your project*

Usage no npm install needed!

<script type="module">
  import expressMongooseApiSeed from 'https://cdn.skypack.dev/express-mongoose-api-seed';
</script>

README

express-mongoose-api-seed


Remove this for your project

Description

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.

File structure

  • /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

Remove this for your project

Routes

Notes

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

User

Method Endpoint Action
POST /user Create User
POST /user/login Login User
POST /user/logout Logout User
GET /user/auth Auth User
GET /user/:role List Users
GET /user/:uid Show User
DELETE /user/:uid Delete User

### User Routes #### Create 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"
}
#### Login User Create user session
  • @body email
  • @body password

Same as Show User

#### Logout User

Destroy user session

#### Auth User Check if session is valid #### List Users List all user with role
  • @param role (user|admin)
[
    {
        "_id": "5307a99ed5539300005a676e",
        "username": "thinkerton",
        "name": "John Barnack",
        "role": "admin"
    }
]
#### Show User Show user info
  • @param uid
{
    "_id": "5307a99ed5539300005a665d",
    "username": "hjboylan",
    "name": "Hugh Boylan",
    "role": "user"
}
#### Delete User Remove user
  • @body password