I am trying to create a controller and service for registration api. What I need to try is to return response to my controller and then show to api.
registerservice.js
const { User } = require('../models/user');
async function register(params) {
let user = new User({
name: params.name,
email: params.email,
passwordHash: params.password,
phone: params.phone,
isAdmin: params.isAdmin,
street: params.street,
apartment: params.apartment,
zip: params.zip,
city: params.city,
country: params.country,
})
try {
checkUser = await User.findOne({ email: params.email }).exec()
if (checkUser) {
return res.status(400).send('Duplicate Email')
}
else user = await user.save()
if (!user)
return res.status(400).send('the user cannot be created!')
return res.send(user);
} catch (error) {
console.log(error)
}
}
module.exports = {
register
};
controller.js
router.post("/register",
async (req, res) => {
registerServices.register(req.body).then(
// res.json({success:true})
).catch(err => next(err))
});
I am not getting how can I return response from service to controller with status like if email duplicate status will be 400 with message something like this.