Удаление массива с формы html запросом с node
Есть форма запросов в html c инпутами. GET, POST работают. Файл Json просто массив. Если кто-то может, подскажите, как можно реализовать delete
Спрошу по взаимодействию node и html формы
данные при чтении с Json файла - не должны же показываться в input сами, там, где delete?
button работает же точно также, как get, post?
или я вообще не правильно подобавлял id к элементам массива?
<!DOCTYPE html>
<meta charset="utf-8">
<title>My quest</title>
</head>
<body>
<h1><u><center>Pogoda w Kraju</u></h1>
<h2><u><center>Aktualizacja dannych</u></h2>
<br> <br> <br> <br> <br>
<center> <form action="//127.0.0.1:8081/process_get" method="GET">
<br>
Location: <input type="text" name="location"> <br> <br><br>
temperature: temperaturę w st. C
<input type="text" name="temperature"> C<br><br>
humidity: wilgotność powietrza w %
<input type="text" name="humidity"> %<br><br>
pressure: ciśnienie w hPa
<input type="text" name="pressure"> hPa<br><br>
<br>
<input type="submit" value="GET">
</form>
<center> <form action="//127.0.0.1:8081/process_post" method="POST">
Location: <input type="text" name="location"> <br> <br> <br>
temperature: temperaturę w st. C
<input type="text" name="temperature"> C<br><br>
humidity: wilgotność powietrza w %
<input type="text" name="humidity"> %<br><br>
pressure: ciśnienie w hPa
<input type="text" name="pressure"> hPa<br><br>
<input type="submit" value="POST">
</form>
<br>
<center> <form action="//127.0.0.1:8081/process_delete" method="POST">
Location: <input type="text" id="1" name="location"><br><br>
temperature: <input type="text" id="2" name="temperature"><br><br>
humidity: <input type="text" id="3" name="humidity"><br><br>
pressure: <input type="text" id="4" name="pressure"><br><br>
<input type="submit" value="DELETE"><br>
</form>
</body>
</html>
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var fs = require('fs');
const path = require('path');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(__dirname + '/public'));
app.post('/process_post', (req, res) => {
// należy utworzyć nowy obiek
const newWeather = {
"id": 1,
location: req.body.location,
"id": 2,
temperature: req.body.temperature,
"id": 3,
humidity: req.body.humidity,
"id": 4,
pressure: req.body.pressure
};
console.log(req.body)
// читаем актуальные данные
const weather = JSON.parse(fs.readFileSync("weather.json"));
// dodać do nich nową pogodę
weather.push(newWeather);
// записать изменения
fs.writeFileSync("weather.json", JSON.stringify(weather));
res.json(newWeather);
});
app.use(express.static('public'));
app.get('/process_get', function(req, res) {
const records = JSON.parse(fs.readFileSync("weather.json"));
const weather = JSON.parse(fs.readFileSync("weather.json"));
res.json(weather);
});
// не работает
app.post('/delete', function(req, res) {
fs.readFile(__dirname + "/weather.json", function (err, data) {
data = data.filter(x=>x.id!=req.params.id);
delete data["weather" + req.params.id];
console.log(data);
fs.writeFile('weather.json', JSON.stringify(data), function (err) {
if(err){return console.log(err);}
res.json(weather);
});
});
});
// пример для себя фильтра
var server = app.listen(8081, function() {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at //%s:%s", host, port)
})