UNPKG

node-express-mongodb-jwt-rest-api-skeleton

Version:

Node.js express.js MongoDB JWT REST API - 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)

91 lines (80 loc) 1.35 kB
const express = require('express') const router = express.Router() require('../../config/passport') const passport = require('passport') const requireAuth = passport.authenticate('jwt', { session: false }) const trimRequest = require('trim-request') const { roleAuthorization } = require('../controllers/auth') const { getUsers, createUser, getUser, updateUser, deleteUser } = require('../controllers/users') const { validateCreateUser, validateGetUser, validateUpdateUser, validateDeleteUser } = require('../controllers/users/validators') /* * Users routes */ /* * Get items route */ router.get( '/', requireAuth, roleAuthorization(['admin']), trimRequest.all, getUsers ) /* * Create new item route */ router.post( '/', requireAuth, roleAuthorization(['admin']), trimRequest.all, validateCreateUser, createUser ) /* * Get item route */ router.get( '/:id', requireAuth, roleAuthorization(['admin']), trimRequest.all, validateGetUser, getUser ) /* * Update item route */ router.patch( '/:id', requireAuth, roleAuthorization(['admin']), trimRequest.all, validateUpdateUser, updateUser ) /* * Delete item route */ router.delete( '/:id', requireAuth, roleAuthorization(['admin']), trimRequest.all, validateDeleteUser, deleteUser ) module.exports = router