最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何使用mongoose和node js在mongodb中不插入不需要的字段数据的情况下创建文档?

IT培训 admin 7浏览 0评论

如何使用mongoose和node js在mongodb中不插入不需要的字段数据的情况下创建文档?

我已经为用户数据创建了一个集合。我有一个可选字段“ emailid”。如果用户提供了电子邮件,我已经编写了存储电子邮件的代码。否则,它应该使用空字符串,例如“”。一段时间以来,它在不插入电子邮件ID的情况下运作良好。但是在将数据保存到集合中时,它给了我类似“ 无法读取未定义的属性'保存'的属性>>”的错误。谁能帮我解决这个问题。下面是模型架构代码。

var usersSchema = new mongoose.Schema({
  username : {type: String, required: true},
  password : {type: String, required: true},
  user_phone_number: {type: String, required: true, unique: true},
  emailid  : {type: String, required: false, unique: true},
  status   : {type: Boolean, required: false, default: 1}
},
{
  timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'},
  versionKey:0
});

服务代码为,

createUser: async (payload) => {
        let err, err1, newUser, userData;
        [err,newUser] = await to(app.models.Users.create({
            username: payload.username,
            user_phone_number: payload.phone_number,
            emailid: payload.email?payload.email:"",
            password:payload.password
        }));
        [err1,userData]=await to(newUser.save());
        if(err || err1) TE("Error in creating a user");
        return userData;
    },

我已经为用户数据创建了一个集合。我有一个可选字段“ emailid”。如果用户提供了电子邮件,我已经编写了存储电子邮件的代码。否则,它应该使用空字符串,例如“”。一段时间了...

回答如下:

您正在尝试保存newUser,然后检查是否发生错误。如果err不为null,则需要继续newUser.save(),否则将引发错误。

如何使用mongoose和node js在mongodb中不插入不需要的字段数据的情况下创建文档?

我已经为用户数据创建了一个集合。我有一个可选字段“ emailid”。如果用户提供了电子邮件,我已经编写了存储电子邮件的代码。否则,它应该使用空字符串,例如“”。一段时间以来,它在不插入电子邮件ID的情况下运作良好。但是在将数据保存到集合中时,它给了我类似“ 无法读取未定义的属性'保存'的属性>>”的错误。谁能帮我解决这个问题。下面是模型架构代码。

var usersSchema = new mongoose.Schema({
  username : {type: String, required: true},
  password : {type: String, required: true},
  user_phone_number: {type: String, required: true, unique: true},
  emailid  : {type: String, required: false, unique: true},
  status   : {type: Boolean, required: false, default: 1}
},
{
  timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'},
  versionKey:0
});

服务代码为,

createUser: async (payload) => {
        let err, err1, newUser, userData;
        [err,newUser] = await to(app.models.Users.create({
            username: payload.username,
            user_phone_number: payload.phone_number,
            emailid: payload.email?payload.email:"",
            password:payload.password
        }));
        [err1,userData]=await to(newUser.save());
        if(err || err1) TE("Error in creating a user");
        return userData;
    },

我已经为用户数据创建了一个集合。我有一个可选字段“ emailid”。如果用户提供了电子邮件,我已经编写了存储电子邮件的代码。否则,它应该使用空字符串,例如“”。一段时间了...

回答如下:

您正在尝试保存newUser,然后检查是否发生错误。如果err不为null,则需要继续newUser.save(),否则将引发错误。

发布评论

评论列表 (0)

  1. 暂无评论