вопрос про Delete b form
форматировал, можно вернуться к теме delete
переделал, сделал запросы GET, POST ( читало и записывало в Json) код, который работает 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.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.delete('/delete/:id', function(req, res) { const weather = JSON.parse(fs.readFileSync("weather.json")); var id = req.param("id"); weather.remove({ _id: id }, function(err) { if (err) { console.log(err) } else { return res.send("Removed"); } }); fs.writeFileSync("weather.json", JSON.stringify(weather)); res.json(newWeather); }); 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) } <!DOCTYPE html> <meta charset="utf-8"> <title>Test</title> </head> <body> <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> <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> <form action="//127.0.0.1:8081/process_delete" method="DELETE"> 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> Html вопрос, метод post или все таки delete В форме же input не должно ж ничего появляться? что мол, файл json прочитан, input же пустой по идее будет отдельно вынес id, чтобы удалять этот массив. и еще вопрос, в самом удаление html button точно также управляется, как и в пост , гет? да я ссоздал файл json cпустым массивом и данные с пост в него нормально записываются и показываются в браузере Гет тоже нормально все показывает ps проблема моя с удалением пост Спасибо Редактировать/удалить сообщение |
Цитата:
|
Цитата:
Меня там удивило использование этого метода. Такого вроде нет в массиве. Цитата:
А потом как-то пытаются удаление делать по _id... Да и сам возврат из delete() довольно странный. Т.е. не понятно как вообще доберутся до перезаписи самого "обновленного" файла. Цитата:
|
app.delete('/delete/:id', function(req, res) {
Мне кажется, что бы это сработало, должно быть быть обращение к серверу с методом DELETE. А у вас все формы с method GET или POST |
Цитата:
|
в бьютифул я вставлял только js. html я вообще не трогал. убрал пробелы и все. я не знаю, что еще не упорядочено. кроме кода просто вопросы
1. весь delete просто, как пример кода был. Фильтр да, с учебника, так он мне и пригодится. Но все ж уперлось в. как form cоединить с этим всем. Если я не понимаю, что задать в форме html , какой метод и, как выводить это на button. будет ли работать, как get и post 2. я не понимаю, должно ли в input показывать данные с прочитанного json в delete ( по логике нет) |
Я наоборот за, чтобы код был читаем и за форматирование. в html не было красных точек и я просто поудалял пробелы. так и с js пробелы поудалял и красные точки и все, я о другом и не знал. сейчас переделаю
|
Цитата:
ps мне вообще стыдно, что я не знал об этом , я бы назвал стандартизаторе "красивый код", о валидаторе знал. Поэтому я и не нажимал там ничего, только точки удалил. ps2 мне абсолютно не лень, что надо поправить, исправить, привести в порядок, чтобы донести нормально, просто нужен был образец, а так ну гост, стандартизация. Я все сделал по инструкции, сейчас должно быть форматировано и ошибки исправил |
Цитата:
|
Увы.
В HTML в form у атрибута method значения могут быть только GET или POST. Любое другое рассматривается как GET. HTML Living Standard — Last Updated 30 July 2021 https://html.spec.whatwg.org/multipa...attr-fs-method Значит надо либо обращаться к серверу через AJAX (fetch) - там DELETE можно использовать. Либо обращаться с методом POST, а на сервере ловить нужный path (/process_delete) |
Часовой пояс GMT +3, время: 04:53. |