Как добавить уведомления в пн goose? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть эта схема пользователя

const Schema = mongoose.Schema;
const bcrypt = require("bcryptjs");

const userSchema = new Schema(
  {
    email: {
      type: String,
      required: true,
      index: {
        unique: true
      }
    },
    password: {
      type: String,
      required: true
    },
    name: {
      type: String,
      required: true
    },
    website: {
      type: String
    },
    bio: {
      type: String
    }
  },
  {
    timestamps: {
      createdAt: "created_at",
      updatedAt: "updated_at"
    },
    toJSON: { virtuals: true }
  }
);

userSchema.virtual("blogs", {
  ref: "Blog",
  localField: "_id",
  foreignField: "author"
});

userSchema.pre("save", function(next) {
  const user = this;
  if (!user.isModified("password")) return next();

  bcrypt.genSalt(10, function(err, salt) {
    if (err) return next(err);

    bcrypt.hash(user.password, salt, function(err, hash) {
      if (err) return next(err);

      user.password = hash;
      next();
    });
  });
});

userSchema.methods.comparePassword = function(password, next) {
  bcrypt.compare(password, this.password, function(err, isMatch) {
    if (err) return next(err);
    next(null, isMatch);
  });
};

const User = mongoose.model("User", userSchema);
module.exports = User;

Я хочу отправить уведомление всем, когда пользователь создает блог или добавляет комментарий, как я могу это реализовать? я должен использовать триггеры?

Стратегия, лежащая в основе этого

  • У вас есть несколько пользователей.
  • У вас есть несколько уведомлений, которые могут быть для одного пользователя, для некоторых пользователей или для всех пользователей.
  • Вам нужна запись о прочтении уведомления в хранилище, чтобы узнать, прочитал ли пользователь уведомление или нет.

1 Ответ

0 голосов
/ 27 февраля 2020

Полагаю, этого легко достичь, используя потоки изменений mongodb.

Более подробно об этом можно узнать на примерах кода.

мощность потоков изменений mongodb

В основном слушайте тип операции вставки / обновления и реагируйте соответственно.

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