Como ya tenemos el modelo User, vamos a crear el endpoint /users para poder consultar, crear, eliminar y actualizar un usuario.
Controlador
En la carpeta api/user creamos el archivo user.controller.js que va a tener todos los métodos que necesitemos, en este punto solo vamos a usar el de crear usuario.
api/user/user.controller.js
constjwt=require('jsonwebtoken');constUser=require('./user.model');constconfig=require('../../config/environment');functionvalidationError(res, statusCode) {conststatusCodeLocal= statusCode ||422;return err =>res.status(statusCodeLocal).json(err);}functionhandleError(res, statusCode) {conststatusCodeLocal= statusCode ||500;return err =>res.status(statusCodeLocal).send(err);}/** * Get list of users * restriction: 'admin' */functionindex(req, res) {returnUser.find({},'-salt -password').exec().then(users =>res.status(200).json(users)).catch(handleError(res));}/** * Creates a new user */functioncreate(req, res) {constnewUser=newUser(req.body);newUser.provider ='local';newUser.role ='user';returnnewUser.save().then((user) => {consttoken=jwt.sign( { _id:user._id },config.secrets.session, { expiresIn:60*60*5 }, );res.json({ token }); }).catch(validationError(res));}module.exports= { index, create,};
Ahora necesitamos una ruta para consumir estos métodos, vamos a crearlos.
Rutas
En la misma carpeta crearemos el archivo index.js con el siguiente código: