【问题标题】:not able to delete data using app.delete in node js无法在节点 js 中使用 app.delete 删除数据
【发布时间】:2018-08-30 05:21:23
【问题描述】:

我试图从 users.json 文件中删除用户,该文件与调用 API 的 app.js 位于同一目录中,但每次我运行代码时,它都会显示错误:“不能获取/删除”,在浏览器中。 我寻找解决方案,但没有找到任何解决方案。任何帮助将不胜感激。

这是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);
});

除此之外,我如何从url 动态地提供用户的id。我试过req.params.id,我不确定我在写。 delete data["user" + req.params.id];id 将在网址app.delete('/delete/:id', ... 中提供

【问题讨论】:

  • 请同时发布您的 json 文件

标签: node.js rest api express


【解决方案1】:

您的代码在使用 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");
});
})

【讨论】:

  • app.get 工作!但为什么 app.delete 不工作。以及如何使其动态化(上述问题的第二部分)。
  • 谢谢,它运行良好。但var id = req.param("id"); 已被贬低,所以我没有使用req.param("id"),而是使用req.params.id 并且运行良好。
【解决方案2】:

您的代码可以正常用于邮递员的 API 调用。但是,如果您直接从浏览器 URL 尝试,它是一个 GET 调用(您可以在日志记录中观察它)。要删除,您需要使用 URL 路径和回调修改 GET 调用。希望我能很好地理解这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2020-04-04
    • 2021-06-14
    • 2018-08-23
    • 2019-01-21
    • 2015-07-16
    相关资源
    最近更新 更多