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)
97 lines (85 loc) • 1.44 kB
JavaScript
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 {
getAllCities,
getCities,
createCity,
getCity,
updateCity,
deleteCity
} = require('../controllers/cities')
const {
validateCreateCity,
validateGetCity,
validateUpdateCity,
validateDeleteCity
} = require('../controllers/cities/validators')
/*
* Cities routes
*/
/*
* Get all items route
*/
router.get('/all', getAllCities)
/*
* Get items route
*/
router.get(
'/',
requireAuth,
roleAuthorization(['admin']),
trimRequest.all,
getCities
)
/*
* Create new item route
*/
router.post(
'/',
requireAuth,
roleAuthorization(['admin']),
trimRequest.all,
validateCreateCity,
createCity
)
/*
* Get item route
*/
router.get(
'/:id',
requireAuth,
roleAuthorization(['admin']),
trimRequest.all,
validateGetCity,
getCity
)
/*
* Update item route
*/
router.patch(
'/:id',
requireAuth,
roleAuthorization(['admin']),
trimRequest.all,
validateUpdateCity,
updateCity
)
/*
* Delete item route
*/
router.delete(
'/:id',
requireAuth,
roleAuthorization(['admin']),
trimRequest.all,
validateDeleteCity,
deleteCity
)
module.exports = router