findOneAndUpdate и отправь СМС - PullRequest
       7

findOneAndUpdate и отправь СМС

0 голосов
/ 14 октября 2018

Я пытаюсь отправить текстовое сообщение с уведомлением о том, что пациент зарегистрировался при обновлении встречи коллекции MongoDB. IsCheckedIn: {type: Boolean} должно быть установлено в значение true.Я использую узел js, express, ejs и MongoDB.Я успешно отправил SMS-сообщение, но не обновляюсь.Как мне это сделать?

//mogoose schema
var appointmentSchema = new mongoose.Schema({
  lastName: { type: String },
  firstName: { type: String },
  phoneNumber: { type: Number },
  date: { type: String },
  time: { type: String },
  period: { type: String },
  isCheckedIn: { type: Boolean, default: false }
});
var appointment = mongoose.model("Appointment", appointmentSchema);

//SEND SMS ROUTE
app.post("/:id", function(req, res) {
  const number = ***********;
  const message = "Patient has arrived for his/her appointment";
  nexmo.message.sendSms(
    "***********",
    number,
    message,
    { type: "unicode" },
    (err, responseData) => {
      if (err) {
        console.log(err);
      } else {
        console.dir(responseData);
        res.redirect("/");
      }
    }
  );
});

// UPDATE ROUTE
app.put("/:id", function(req, res) {
  appointment.findOneAndUpdate(
    { _id: mongoose.Types.ObjectId(req.params.id) },
    { isCheckedIn: true },
    function(err, appointment) {
      if (err) {
        console.log(err);
        res.redirect("/");
      } else {
        console.log(appointment);
        res.redirect("/");
      }
    }
  );
});

Решен маршрут обновления:

//UPDATE ROUTE
    app.put("/:id", (req, res) => {
      appointment.update(
        { _id: req.params.id },
        { $set: { isCheckedIn: true } },
        (err, responseData) => {
          if (err) {
            console.log(err);
          } else {
            console.log(responseData);
            res.redirect("/");
          }
        }
      );
    });

Ответы [ 2 ]

0 голосов
/ 15 октября 2018
//UPDATE ROUTE
    app.put("/:id", (req, res) => {
      appointment.update(
        { _id: req.params.id },
        { $set: { isCheckedIn: true } },
        (err, responseData) => {
          if (err) {
            console.log(err);
          } else {
            console.log(responseData);
            res.redirect("/");
          }
        }
      );
    });
0 голосов
/ 14 октября 2018

Я думаю, вы должны изменить свой findOneAndUpdate.Попробуйте приведенный ниже фрагмент

appointment.findOneAndUpdate(
 {_id : mongoose.Types.ObjectId(req.params.id)},
 {isCheckedIn : true }
);
...