Я использую внутренний запрос 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