не удается удалить данные с помощью app.delete в узле js - PullRequest
0 голосов
/ 30 августа 2018

Я пытался удалить пользователя из файла users.json, который находится в том же каталоге, что и мой app.js, откуда вызывается API, но каждый раз, когда я запускаю код, он показывает ошибку: «не могу получить / удалить ", в браузере. Я искал решение, но не нашел. Любая помощь будет оценена.

вот файл users.json. { "user1" : { "name" : "mahesh", "password" : "password1", "profession" : "teacher", "id": 1 }, "user2" : { "name" : "suresh", "password" : "password2", "profession" : "librarian", "id": 2 }, "user3" : { "name" : "ramesh", "password" : "password3", "profession" : "clerk", "id": 3 } }

//app.js file   
var express = require ('express');
var app = express();
var bodyParser = require('body-parser');
var multer = require('multer');
var fs = require("fs");
var PORT = 3000;

var id = 2;
//here is the delete api 
app.delete('/delete',(req,res) => {
fs.readFile(__dirname + "/" + "users.json", 'utf8', (err,data) => {
     data = JSON.parse( data );
   delete data["user" + 2];

   console.log( data );
   res.end( JSON.stringify(data));

});
})

var server = app.listen(PORT,function(){
console.log('server started at port ' + PORT);
});

кроме того, как я мог бы динамически дать id пользователя от url. Я пытался req.params.id, я не уверен, что я делаю это писать. delete data["user" + req.params.id]; это id будет предоставлено в URL app.delete('/delete/:id', ...

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Ваш код будет хорошо работать для вызова API от почтальона. Но, если вы пытаетесь использовать URL браузера напрямую, это вызов GET (вы можете наблюдать это в журнале). Чтобы удалить, вам нужно изменить вызов GET, используя URL-путь и обратный вызов. Надеюсь, я хорошо понял вопрос.

0 голосов
/ 30 августа 2018

Ваш код работает нормально при использовании app.get.

Вы просто должны использовать app.get вместо app.delete

output I received

Обновление

http.delete не работает в браузере, он становится запросом get при доступе к URL из браузера.

Если вы используете почтальон, он работает нормально,

Http.delete demo

Проверьте пример кода.

app.delete('/delete/:id', function(req, res) {
 var id = req.params.id ;
fs.readFile("./users.json", 'utf8', (err,data) => {
     data = JSON.parse( data );

delete data["user" + id];

console.log( JSON.stringify(data) );
res.status(200);

return res.send("Removed");
});
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...