Дата обновления всего объекта при использовании find () - PullRequest
0 голосов
/ 11 апреля 2020

Мне нужно обновить поле в одной из моих моделей при запросах. Я использую Model.find (), который возвращает мне массив всех упражнений пользователей. Но формат даты внутри моей схемы всегда в ISO. Который я хочу изменить.

Моя схема упражнений выглядит следующим образом.

 var ExerciseSchema = new Schema({
      userid: {
        type: String,
        required: true
      },
      description: String,
      duration: Number,
      date: {
        type: Date,
        default: Date.now
      }
    });

Вот как я пытаюсь вызвать функцию получения всех упражнений…

async function getExerciselogs(userId) {
  try {
    var exerciseLog = await ExerciseModel.find(
      { userid: userId },
      "description duration date -_id"
    );



    return exerciseLog;
  } catch (err) {
    throw err;
  }
}

я хочу отформатировать полученную дату в новый формат Date (). toDateString () или «четверг 16 января 1997» в этом формате. Как я могу это сделать? Спасибо за вашу помощь.

это мой последний node js файл, где я делаю это ..

app.get("/api/exercise/log", (req, res) => {
  if (Object.keys(req.query).length === 0) {
    console.log("inside all the users");
    UserModel.find({}, (err, users) => {
      if (err) res.send({ error: err });
      res.json({
        users
      });
    });
  } else {
    var userDetail = getUserDetail(req);

    console.log("inside from to");
    userDetail
      .then(user => {
        getExerciselogs(user._id)
          .then(exercise => {



            res.json({
              _id: user._id,
              username: user.username,
              count: exercise.length,
              log: exercise
            });
          })
          .catch(err => {
            res.send(err);
          });
      })
      .catch(err => {
        res.send(err);
      });
  }
});
...