Здравствуйте!
Можете подсказать, выдает ошибку - TypeError: weather.push is not a function
at C:\Users\PC\server.js:36:21
- проблема в JSON файле?
вначале была ошибка SyntaxError: Unexpected token c in JSON at position 1 at JSON.parse ()
http://127.0.0.1:8081/favicon.ico («default-src»).
отправил в валидатор, исправил и появиласт ошибка, что это не функция.
Задача была - данные ввожу в HTMl форме. Записываю их в JSON. Потом считываю и могу изменить
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var fs = require('fs');
const path = require('path');
// Create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.use(express.static('public'));
app.get('/index.html', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
})
app.post('/process_post', urlencodedParser, (req, res) => {
// należy utworzyć nowy obiekt
const newWeather = {
location: req.body.location,
temperature: req.body.temperature,
humidity: req.body.humidity,
pressure: req.body.pressure
};
// pobrać aktualne dane z pogodą
const weather = JSON.parse(fs.readFileSync("weather.json"));
// dodać do nich nową pogodę
weather.push(newWeather);
// i napisać zapisać dane do pliku
fs.writeFileSync("weather.json", JSON.stringify(weather));
});
app.delete('/process_delete', function (req, res) {
console.log("Got a DELETE request for /del");
res.send('<h1>DELETE</h1>');
})
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)
})
<body>
<center> <form action = "//127.0.0.1:8081/process_get" method = "GET">
<br>
Location: <input type = "text" name = "Lokalizację"> <br>
<br>
<br>
temperature: temperaturę w st. C
<input type="number" name="temperaturę"> C<br><br>
humidity: wilgotność powietrza w %
<input type="number" name="wilgotność" > %<br><br>
pressure: ciśnienie w hPa
<input type="number" name="ciśnienie" > 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 = "Lokalizację"> <br>
<br>
<br>
temperature: temperaturę w st. C
<input type=" text" name="temperaturę"> C<br><br>
humidity: wilgotność powietrza w %
<input type="text" name="wilgotność" > %<br><br>
pressure: ciśnienie w hPa
<input type="text" name="ciśnienie" > hPa<br><br>
<br>
<input type = "submit" value = "POST">
</form>
<center> <form action = "//127.0.0.1:8081/" method = "DELETE">
Location: <input type = "text" name = "Lokalizację"> <br>
<br>
<br>
temperature: temperaturę w st. C
<input type="number" name="temperaturę"> C<br><br>
humidity: wilgotność powietrza w %
<input type="number" name="wilgotność" > %<br><br>
pressure: ciśnienie w hPa
<input type="number" name="ciśnienie" > hPa<br><br>
<br>
<input type = "submit" value = "DELETE">
</form>
</body>
так я оформил weather.JSON
{
"location": "req.body.location",
"temperature": "req.body.temperature",
"humidity": "req.body.humidity",
"pressure": "req.body.pressure"
}
ps все работало кроме записи и чтения в JSON,
c cамим файлом JSON cовсем не уверен, пробовал по разному его оформить
CПАСИБО ЗА КОММЕНТАРИИ