The function in the model file works successfully. But to know if there is any duplication in the ID during registering and validate it, I made a return statement in the function. and according to the value of x that is assigned to the function (in the controller file) the server will respond.
//Model file
const bodyParser = require('body-parser');
const express = require('express');
const { check, validationResult } = require('express-validator');
const router = require('express').Router();
router.use(express.json());
const urlencoded = bodyParser.urlencoded({ extended: false });
const User = require('../DB/User.js'); //
function create_user(id1, name1, Password1) {
var user1 = new User({
id: id1,
name: name1,
Password: Password1
});
let x;
user1.save(function(err) {
if (err) {
if (err.code == 11000) {
x = 0;
console.log('user already exists and x= ' + x);
return x;
} else {
console.log(err);
}
} else {
x = 1;
console.log('Saved successfully and x =' + x);
return x;
}
})
}
module.exports = create_user;
//Controller file
const bodyParser = require('body-parser');
const express = require('express');
const { check, validationResult } = require('express-validator');
const { x } = require('joi');
const create_user = require('../model/Registration.js');
const router = require('express').Router();
router.use(express.json());
const urlencoded = bodyParser.urlencoded({ extended: false });
router.get('/Registration', function(req, res, next) {
res.render('Registration', { checker: 0 });
});
router.post('/Registraion/sign_up', function(req, res) {
let x = create_user(req.body.id, req.body.name, req.body.password);
console.log('x =' + x);
if (x == 0) {
req.body.id.setCustomValidity("This id is already used");
console.log('this id exsists and x =' + x); //the output here is x= undefined
} else {
res.redirect('/Registration');
}
});
module.exports = router;