Я новичок в Javascript и Express, и в настоящее время я работаю над небольшим проектом, чтобы начать работать с фреймворком и языком.
Я пытаюсь отобразить комментарий, который пользователь ввел бы, используя форму, отправляющую текстовое значение по запросу POST, который я затем сохраняю в файл.
Чтобы отобразить их, я читаю файл json и анализирую его, а затем передаю значение в шаблон pug. Вот код:
Controller.js
module.exports.handle_comment = function handle_comment(comment) {
try {
let comments = io_utils.read_JSON_file(__dirname+"/comments.json");
comments.comments.push(comment);
io_utils.write_JSON_toFile(comments, __dirname+'/comments.json');
return comments.comments;
} catch(err) {
console.log(err);
return [];
}
}
Prof.js
router.post('/timer', function(req, res, next) {
const controller = require('../controllers/timer_controller');
let commentaires = [];
if(req.body.comment) {
commentaires = controller.handle_comment(req.body.comment);
}
res.render('timer', {
etudiant: req.body.etudiant,
comments: commentaires
});
});
Редактировать: timer.pug
extends layout
block content
center
if etudiant
h1 Timer pour #{etudiant}
else
h1 Timer
p Createur : #{prof}
div#clockdiv
div
span.minutes
p.smalltext Minutes
div
span.seconds
p.smalltext Secondes
script.
var timeInMinutes = 2;
var currentTime = Date.parse(new Date());
var deadline = new Date(currentTime + timeInMinutes*60*1000);
initializeClock('clockdiv', deadline);
br
br
form.pure-form.pure-form-aligned(action="/prof/timer", method="POST")
textarea.pure-input-1-2(name="comment", placeholder="Commentaires")
br
button.pure-button.pure-input-1-2.pure-button-primary(type="Submit") Envoyer
h2 Commentaires
if comments
each comment in comments
div.commentaire
span.nom= comment.author
p.commentaire= comment.text
br
Почему-то, когда я нажимаю кнопку «отправить», страница даже не отображается. Однако, когда я удаляю строку, вызывающую функцию контроллера, страница отображается.
Что я делаю не так?
Редактировать: я использую fs.writeFileSync для записи в файл json