момент JS не обновляется в мангусте - PullRequest
0 голосов
/ 18 мая 2018

Так что у меня проблемы с моментами.Временная метка не обновляется, когда я звоню по почте.Я ждал 30 секунд, чтобы сделать еще один звонок, и я все еще получаю то же самое время.Как я могу это исправить?Ниже приведен мой код, поэтому дайте мне знать, что я делаю неправильно.

var mongoose = require('mongoose');
var moment = require('moment');
var now = moment();

var UserSchema = new mongoose.Schema({
    email: { type: String, default: ''},
    name: { type: String, default: ''},
    password: { type: String, default: ''},
    timestamp: {type: String, default: now.format("dddd, MMMM Do YYYY, h:mm:ss a")}
});

module.exports = mongoose.model('UserSchema', UserSchema);

module.exports = {
    find: function(params, callback) {
        User.find(params, function(err, result) {
            if (err) {
                callback(err, null);
                return;
            }
            callback(null, result);
            return;
        });
    },
    create: function(params, callback) {
        User.create(params, function(err, result) {
            if (err) {
                callback(err, null);
                return;
            }
            callback(null, result);
            return;
        });
    }
}

router.post('/', function(req, res, next) {
  UserController.create(req.body, function(err, result) {
    if (err) {
      res.json({
        confirmation: 'fail',
        message: err
      });
      return;
    }
    res.json({
      confirmation: 'success',
      result: result
    });
    return;
  });
  return;
});

enter image description here enter image description here

1 Ответ

0 голосов
/ 20 мая 2018

Эта строка кода будет выполняться только один раз при загрузке модуля:

var now = moment();

Таким образом, то же значение now будет использоваться для всех документов.

Вместо этого в определении схемы должна использоваться функция, которая будет вызываться при каждом создании нового документа:

var UserSchema = new mongoose.Schema({
    email: { type: String, default: ''},
    name: { type: String, default: ''},
    password: { type: String, default: ''},
    timestamp: {
        type: String, 
        default: () => moment().format("dddd, MMMM Do YYYY, h:mm:ss a")
    }
});

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

...