Я передаю схему от модели к контроллеру.Я хочу создать коллекции в MongoDB, начиная с конкретного ответа JSON после публикации.
модель: -
const mongoose = require ('mongoose');
const bcryptt = require('bcryptjs');
const crypto = require('crypto');
var adminSchema = new mongoose.Schema({
companyName : {
type: String,
required: "Company name can't be empty.",
required: false
},
companyID: {
type: String,
unique: true
}
},
email : {
type: String,
required: "Email can't be empty.",
unique: true
},
password: {
type: String,
required: "First name can't be empty."
},
fullName : {
type: String,
required: "First name can't be empty."
}
});
mongoose.model('Admin', adminSchema);
Так что здесь я использую companyName
длясоздать compantID в controller : -
module.exports.registerAdmin = (req, res, next) =>{
var admin = new Admin();
admin.companyName = req.body.companyName;
admin.email = req.body.email;
admin.password = req.body.password;
admin.fullName = req.body.fullName;
//comapny id generate
const reqq = crypto.createHash('md5').update(admin.companyName).digest('hex');
let valueNum = reqq.match(/\d/g).join("").toString().substring(0,6);
admin.companyID = valueNum;
console.log(valueNum);
admin.save((err, doc) =>{
if(!err){
res.send(doc);
//todo something here to generate collection from valueNum
}
else{
if (err.code == 11000)
res.status(422).send(["Entered duplicate email address. Please check"]);
else
return next(err);
}
});
}
Итак, я получаю companyID
in valueNum
.После admin.save
я хочу передать valueNum
в некотором коде, чтобы создать новую коллекцию того уникального valueNum
, который будет в существующей БД.Если коллекция с определенным valueNum
уже существует в БД, пропустите.
Все это произойдет при одном и том же обращении по URL.Ответ, который я получаю: -
{
"_id": "5c874d88497ed26f233ffad5",
"companyName": "Meta",
"email": "xyzt@test.com",
"fullName": "Aron",
"companyID": "14624",
}
Как мне этого добиться?