Формат даты не отображается в Ejs, как в бэкэнд-моменте.js - PullRequest
0 голосов
/ 02 октября 2018

Я использую внутренний запрос POST, который создает сообщение:

router.post("/", middleware.isLoggedIn, function(req, res) {

var name = req.body.name;
var image = req.body.image;
var description = req.body.description;
var text = req.body.text;
var author = {
    id: req.user._id,
    username: req.user.username
}

var postedTime = req.body.date;
let createdOn = moment(postedTime).format('DD MM YYYY').toString();
console.log(createdOn);

var newPost = {
    name: name,
    image: image,
    description: description,
    text: text,
    author: author,
    createdOn: createdOn
}
spacePost.create(newPost, function(err, newlyCreated) {
    if (err) {
        console.log(err);
    } else {
        res.redirect("/spaceblog")

    }
})

Я использую moment.js для форматирования даты, и консоль выглядит отлично (02 10 2018).Однако в момент передачи его ejs в представлениях он снова отображается как метка времени.

Posted on Sat Oct 02 2018 00:00:00 GMT+0100 (Central Europe Standard Time)

Код для получения его на EJS

<div class="card-footer text-muted">
      Posted on
      <%= post.createdOn  %>
</div>

Я прочитал, что решение будет использовать момент ().в EJS вызывая его с помощью скрипта внутри (у меня тоже есть скрипт в шапке).Однако мне пришлось бы рендерить в бэкэнд главную страницу (передавая объект момент) вместо перенаправления, но я не нашел способа сделать это без отмены действия POST для создания поста.Я не нашел полезного документа в momentjs.com

1 Ответ

0 голосов
/ 02 октября 2018

Хорошо, теперь я нашел это для всех, у кого будет такая же проблема.Нет необходимости вставлять скрипт moment.js на страницу просмотра, если вы используете Nodejs.Позвоните Момент в бэкэнд для вашей даты:

let createdOn = moment(postedTime).toString();

, затем добавьте в app.js (или какое имя у вас есть для основного маршрута)

app.locals.moment = require('moment');

затем вы можете позвонить и отформатироватьс моментом в EJS:

<%= moment(post.createdOn).format('DD MM YYYY');  %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...