我正在使用nodejs并且有一个注册页面,其中有一个select标签可供客户和员工之间选择。
我想要1个模型和2个模式: -User:将包含公共道具,例如:mail,name,pass ... -EmployeeSchemma,包含员工的特定文件 -ClientSchemma,包含客户的特定字段。
这是我想在服务器端实现的目标:
var User=require("models/user");
router.post("/register",function(req,res){
var newUser=new User();
if(req.body.type=="client")
// make the newUser use the ClientSchema //
if(req.body.type=="employee")
// the newUser instance will use the EmployeeSchema //
});
请问我怎样才能取得这样的成绩(?) 请注意,我只想使用一个模型,可以根据表单中的用户选择对Client和Employee用户进行建模。
答案 0 :(得分:0)
如果你想要一个"动态模型"我想你正在寻找setting strict to false in mongoose
正如您所知,默认情况下,Mongoose将遵循您设置的架构/模型,设置strict:false将允许您保存不在架构/模型中的字段。
因此,对于您的情况,在您的文件模型/用户中,您将要包含" strict:false"作为创建架构时的第二个参数:
var userSchema = new Schema({
email: String,
name: String,
password: String
// other parts of your user schema
}, {strict: false})
您现在应该可以在同一个集合中相应地设置客户和员工字段。