我试图从 users.json
文件中删除用户,该文件与调用 API 的 app.js
位于同一目录中,但每次运行代码时,它都会在浏览器中显示错误:“无法获取/删除”。
我寻找解决方案但没有找到任何解决方案。任何帮助将不胜感激。
这里是users.json
文件。
{
“用户1”:{
“名称”:“马赫什”,
“密码”:“密码1”,
“职业”:“老师”,
“id”:1
},
“用户2”:{
“姓名”:“苏雷什”,
“密码”:“密码2”,
“职业”:“图书管理员”,
“ID”:2
},
“用户3”:{
“名称”:“拉梅什”,
“密码”:“密码3”,
“职业”:“文员”,
“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);
});
除此之外,我如何从url
动态地给出用户的id
。我尝试了 req.params.id
,我不确定我是否正在写它。
删除数据["user"+ req.params.id];
此 id
将在 url app.delete('/delete/:id', ...
最佳答案
使用 app.get
时,您的代码工作正常。
您只需使用 app.get
而不是 app.delete
更新
http.delete 在浏览器中不起作用,当您从浏览器访问 url 时,它会作为 get 请求。
如果你使用 postman ,它工作正常,
检查示例代码。
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");
});
})
关于node.js - 无法在node js中使用app.delete删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52089696/