如何在Express Node.js中获取删除请求的参数

11

我是nodejs的新手。 如何获取通过Delete请求传递的值参数? 我正在使用node express js。 谢谢提前。


这取决于参数发送的格式。对于JSON或URL编码,使用req.body。请注意中间件的依赖关系。 - Jonathan Lonowski
5个回答

16
你可以使用 "req.body" 来获取你发送的值。
例如:
router.delete('/test',function(req,res){
     res.send(req.body.data);
});

这让我完成了一半。我在下面添加了一些细节。 - keithpjolley

5
你的问题有点不清楚,但我认为你在问如何/是否可以像其他请求一样,在DELETE方法的HTTP请求中添加参数。如果是这样,那么可以,并且可以通过所有其他请求方式实现。获取请求参数的最通用方法是使用request对象上的param(<name>)方法,但具体取决于请求的格式。请查看文档以获取更多信息。

1

DELETE 方法有一些技巧,但在使用 Express JS 时非常重要。以下是一个简单的示例代码。

var express = require("express");
var server = express();

var backlogItems = [
    {
        itemId: "DEV-3345",
        title: "Develop a proof of concept (PoC)"
    },
    {
        itemId: "DEV-3346",
        title: "Ponder the project's major milestones"
    }
];

// the short program does not include GET and POST implementation for simplicity.

// DELETE implementation

server.delete("/project/backlog/:itemId", 
                       function(req, res) 
{
    backlogItems = skierTerms.filter(function(definition) 
                   {
        return definition.itemId.toLowerCase() !== req.params.itemId.toLowerCase();
                   }); 

    res.json(backlogItems); //sending the updated response back to client app.
});

server.listen(3500);
enter code here

在 server.delete(..) 方法中,itemId 是一个占位符变量名,并且它总是出现在 : 之后。发送 DELETE 请求到 backlogItem 会触发回调函数,并更新 backlogItems 资源并通过 res 发送回客户端。

1

了解如何获取req.body的更多细节,请参见此处的示例: express请求正文
以及此处的文档: multer npm包

要与路由器一起使用,我在./app.js中执行了以下操作。

var multer = require('multer');
var upload = multer();
var deldev = require('./routes/deldev');
...
app.use('/deldev', upload.array(), deldev);
...

而且,在./routes/deldev.js中:

router.delete('/', function(req, res, next) {
  console.log("delete: req.body: " + JSON.stringify(req.body));
  res.json(req.body);
}

// (for debug only. don't use this.)
router.all('/', function(req, res, next) {
  res.send("don't do that.");
}

0

我的删除控制器方法...

exports.remove = (req, res, next) => {
    console.log(req.params.agrgtId);
    const { agr } = req.params.agrgtId;
    agr.destroy();

};

其中agrgtId是来自DELETE查询的变量数据


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接