Я изучаю node.js, и теперь я пытаюсь записывать и читать данные в / из JSON.Мне удалось выяснить, как записать данные из формы в файл JSON и как получить их на внешний интерфейс.Но теперь у меня возникла проблема, когда я публикую новые данные из формы, сайт должен вернуться к test.ejs с сообщением «Файл загружен».Вместо этого я получаю сообщение об ошибке "dataTest не определен.
Вот мой код test.ejs из папки views
<div class="container">
<%= typeof msg != 'undefined' ? msg : '' %>
<form action="test/send" method="post" role="form">
Name:<input type="text" name="name" /><br>
Lastname:<input type="text" name="lastname" /><br>
Adress:<input type=="text" name="adress" /><br>
<input type="submit" value="Submit" >
</form>
<div class="users">
<% dataTest.forEach(function(dat) { %>
<p>
<%= dat.name %>
<%= dat.lastname %>
<%= dat.adress %>
</p>
<% }); %>
</div>
и мой код test.js из папки маршрутов
var express = require('express');
var fs = require('fs');
var bodyParser = require('body-parser');
var router = express.Router();
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: false }));
var dataTest = require('../data/dataTest.json');
// GET test page.
router.get('/', (req,res) => res.render('test', {dataTest: dataTest}));
// POST data to dataTest.json
router.post('/send', (req,res) => {
var file = './data/dataTest.json';
var name = req.body.name;
var lastname = req.body.lastname;
var adress = req.body.adress;
var obj = { name: name,lastname: lastname,adress: adress };
// 1. Read the existing file
fs.readFile(file, (err, data) => {
if (err && err.code === "ENOENT") {
return fs.writeFile(file, JSON.stringify([obj]), error => console.error);
}
else if (err) {
console.error(err);
}
else {
try {
const fileData = JSON.parse(data);
fileData.push(obj);
return fs.writeFile(file, JSON.stringify(fileData), error => console.error)
} catch(exception) {
console.error(exception);
}
}
});
res.render('test', {msg: 'File Uploaded!'});
})
module.exports = router;
Где я ошибся?