как вставить дату и время в пн goose js - PullRequest
0 голосов
/ 12 января 2020

Как мне вставить дату и время в пн goose js ?, я знаю, что дата и время - это дата в схеме.

Это моя схема:

 const mongoose = require('mongoose');
 const { Schema } = mongoose;

 const todoSchema = new Schema({
    name: String,
    description: String,
    isDone: Boolean,
    createdAt: Date,
    updatedAt: Date
   });
  mongoose.model('todos', todoSchema);

Это мой почтовый маршрут:

 app.post('/api/todos', async (req, res) => {

      const { name, description, isDone,createdAt,updatedAt} = req.body;

        const todo = new Todo({
                    name,
                    description,
                    isDone,
                    createdAt,
                    updatedAt
                              });

                try {
                    let newTodo = await todo.save();
                     res.status(201).send(newTodo);
                     } catch (err) {
                        if (err.name === 'MongoError') {
                              res.status(409).send(err.message);
                             }
                             res.status(500).send(err);
                             }
                     });

Это мой ввод выбора даты:

  import React from 'react';
  import DateTimePicker from 'react-widgets/lib/DateTimePicker';
  import Moment from 'moment';
  import momentLocalizer from 'react-widgets-moment';

 Moment.locale('en');

 momentLocalizer();

 const DateTimePickerInput = ({
     label,
     input,
     format,
     width,
     placeholder,
     defaultValue,
     meta: { touched, error },
   }) => {
        return (
                <div className='form-group'>
                <label forname={input.name}>{label}</label> <br />
                  <DateTimePicker
                     placeholderText={placeholder}
                     className='form-control'
                      />
                <div className='text-danger' style={{ marginBottom: '20px' }}>
                {touched && error}
                 </div>
                  </div>
                      );
                       };
           export default DateTimePickerInput;

А это моя форма todo с полем выбора даты:

       <Field
            name='createdAt'
            component={DateTimePickerInput}
            dateFormat='dd-MM-yyyy'
            // dateFormat='dd-MM-yyyy H:mm'
            // showTimeSelect
            // timeFormat='HH:mm'
            placeholder='todoCreatedAt...'
            label='CreatedAt'
             />
          <Field
               name='updatedAt'
               component={DateTimePickerInput}
               dateFormat='dd-MM-yyyy'
               // dateFormat='dd-MM-yyyy H:mm'
               // showTimeSelect
               //timeFormat='HH:mm'
               placeholder='todoUpdatedAt...'
               label='UpdatedAt'
                 />

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

Что не так?

1 Ответ

0 голосов
/ 13 января 2020

Для созданных и обновленных атрибутов используйте параметры метки времени mon goose в схеме. Он позаботится о отметках времени автоматически. Ваша схема будет выглядеть следующим образом после использования опции.

const todoSchema = new Schema({ name: String, ...}, { timestamps: true });

Подробнее здесь

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