Как передать текущую дату React JS Mongo - PullRequest
0 голосов
/ 02 августа 2020

Я использую базу данных mon go для комментариев и пытаюсь отобразить дату каждой записи в базе данных

У меня есть следующая Mon go Schema

let CommentsData = new Schema({
    team_id: {
        type: String
    },
    comment: {
        type: String
    },
    date: {
        type: String
    }
});

module.exports = mongoose.model('Comment', CommentsData);

У меня есть указанная ниже функция в интерфейсе пользователя, которая вызывается при нажатии кнопки для вставки нового комментария - есть ли функция в ReactJS, которую я могу использовать вместо «whatgoeshere?» часть рядом с датой, которая будет вставлять текущую дату (в момент нажатия кнопки) в базу данных?

    const CommentInsert = (team_id, comment) => {
        axios
            .post('http://localhost:3999/todos/addComment', {
                team_id: team_id, comment: comment, date: whatgoeshere?
            })
            .then(() => {
                console.log(`Successfully added comment`)
            })
            .catch(error => console.error(`Error adding Comment.`))
    }

Мой маршрут показан ниже

todoRoutes.route('/addComment').post(function (req, res) {
    let toBeAdded = new Comment(req.body);
    toBeAdded.save()
        .then(() => {
            res.status(200).json({'comment added successfully' });
        })
        .catch(err => {
            res.status(400).send('adding comment failed');
        });
});

1 Ответ

0 голосов
/ 02 августа 2020

Даты - переменная тема, которая далеко выходит за рамки этого вопроса. Выполнение дат таким образом может вызвать проблемы, если вы собираетесь поддерживать несколько часовых поясов.

Когда дата генерируется на стороне клиента, она привязана к языку для этого пользователя. Я настоятельно рекомендую не делать этого, так как это приведет к скачку дат для одной и той же строки комментариев (в зависимости от того, в каком часовом поясе прокомментировал пользователь).

Я бы позволил конечной точке, которую вы отправляете, обрабатывать создание даты, чтобы она была согласованной. Вы также можете подумать о стандартизации его до UT C вместо серверного времени (на случай, если ваше серверное время когда-либо изменится из-за обновления или проблемы).

Я не уверен, на каком у вас серверном языке используя, но сделать это в JS будет:

const date = new Date().getTime();

Это даст вам метку времени для этого точного момента.

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