我将模式从模型传递给控制器。我想在post上创建一个MongoDB中的集合,特别是来自pa的特定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: -
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
得到valueNum
。在admin.save
我想在一些代码中传递valueNum
来创建任何独特的valueNum
将在现有数据库中的新集合。如果使用DB中已存在的特定valueNum
进行收集,则跳过。
这些都将在同一个网址中发生。我得到的回应: -
{
"_id": "5c874d88497ed26f233ffad5",
"companyName": "Meta",
"email": "[email protected]",
"fullName": "Aron",
"companyID": "14624",
}
我怎么能实现这个?
您是否尝试创建集合或新的单独文档?我真的不明白你的问题。
如果您尝试创建新文档,那将非常有意义。
请参考这篇文章,我认为这可能有助于解决您的问题。