Moment.js (moment (). Format ()) не работает вместо Date.now - PullRequest
0 голосов
/ 12 октября 2019

Я получаю эту ошибку, когда приведение даты и времени с моментом js:

CastError: Ошибка приведения к дате для значения "11 октября 19, 23:57"

по пути «дата». Date.now работает, но я хочу отформатировать его так, как показано ниже. Любые решения?

let User = new Schema({
    user: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: moment().format("MMM Do YY, HH:mm")
    }
});

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Если вы прочитаете документацию Mongo , вы увидите, что это за формат даты. Это правило, определенное Mongo для своих пользователей.

Mongoose преобразует значение в собственную дату JavaScript с помощью конструктора Date ().

Это как вы хотитехранить строку в переменной с числовым форматом. Компилятор не позволяет этого. Это совершенно верно. На мой взгляд, вы должны изменить свою модель и сохранить желаемую дату в строковом формате.

let User = new Schema({
    user: {
        type: String,
        required: true
    },
    date: {
        type: String,
        default: moment().format("MMM Do YY, HH:mm")
    },
    currentDate: { // format is ok with Date in javaScript
        type: date,
        default: date.Now()
    }
});
0 голосов
/ 12 октября 2019

функция moment().format("MMM Do YY, HH:mm") возвращает строку, затем вы должны передать type поле параметр String

...