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)
35 lines (30 loc) • 989 B
JavaScript
const { matchedData } = require('express-validator')
const { registerUser, setUserInfo, returnRegisterToken } = require('./helpers')
const { handleError } = require('../../middleware/utils')
const {
emailExists,
sendRegistrationEmailMessage
} = require('../../middleware/emailer')
/**
* Register function called by route
* @param {Object} req - request object
* @param {Object} res - response object
*/
const register = async (req, res) => {
try {
// Gets locale from header 'Accept-Language'
const locale = req.getLocale()
req = matchedData(req)
const doesEmailExists = await emailExists(req.email)
if (!doesEmailExists) {
const item = await registerUser(req)
const userInfo = await setUserInfo(item)
const response = await returnRegisterToken(item, userInfo)
sendRegistrationEmailMessage(locale, item)
res.status(201).json(response)
}
} catch (error) {
handleError(res, error)
}
}
module.exports = { register }