Как добавить пользовательскую модель ObjectId в модель профиля - PullRequest
0 голосов
/ 19 апреля 2019

Когда я создаю нового пользователя с моей моделью пользователя, он создает новый идентификатор объекта для этого пользователя. Я хочу, чтобы этот же идентификатор пользователя также использовался в моей модели профиля через user: someUserId, когда пользователь создает свой профиль.

У меня есть модель профиля с объектом, ссылающимся на мою модель пользователя через Schema.Types.ObjectId, я также попытался заполнить.

Когда создается профиль, я хочу, чтобы он также показывал user: usersID, но когда я создаю профиль, он имеет только идентификатор профиля.

const profileSchema = new Schema({
  user: {
    type: Schema.Types.ObjectId,
    ref: "User"
  },
  username: {
    type: String,
    required: true,
    unique: true,
    minlength: 2,
    maxlength: 50
  },
  email: {
    type: String,
    minlength: 2,
    maxlength: 50,
    required: true,
    unique: true
  },
  gender: {
    type: String
  },
  location: {
    type: String
  },
  bio: {
    type: String,
    minlength: 2,
    maxlength: 255
  },
  favoriteBands: [nameSchema],
  favoriteGenres: [nameSchema],
  instruments: [instrumentSchema], // schema
  experience: [experienceSchema], // schema
  education: [educationSchema], // schema
  social: socialSchema,
  dateCreated: {
    type: Date,
    default: Date.now
  }
});

const Profile = mongoose.model("Profile", profileSchema);
module.exports = Profile;

Вместо того, чтобы запрашивать электронную почту в методе findOne, я хочу вместо этого запросить идентификатор пользователя.

router.post("/", auth, async (req, res, next) => {
  const { error } = validateProfile(req.body);
  if (error) return res.status(400).send(error.details[0].message);

  let profile = await Profile.findOne({ email: req.body.email });

  if (profile) {
    next(errors.processReq);
  } else {
    profile = new Profile({ ...req.body });
  }

  await profile.save();

  res.json(profile);
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...