我试图从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
将在网址app.delete('/delete/:id', ...
答案 0 :(得分:0)
使用app.get
时,您的代码可以正常工作。
您只需要使用app.get
而不是app.delete
更新
http.delete在浏览器中不起作用,当您从浏览器访问URL时,它作为获取请求。
如果您使用邮递员,则工作正常,
检查示例代码。
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");
});
})
答案 1 :(得分:-1)
您的代码可以很好地用于邮递员的API调用。但是,如果您直接从浏览器URL尝试,则它是GET调用(您可以在日志记录中观察到它)。要删除,您需要使用URL路径和回调来修改GET调用。希望我能很好地理解这个问题。