删除节点中的URL请求

delete URL request in node

本文关键字:URL 请求 节点 删除      更新时间:2023-09-26

我正在阅读node js(第一个服务器端语言)书籍,名为node js in action。这里有一个使用cURL实现restful服务的示例。我不明白如何发送删除请求url到服务器。我试过不同的组合,但没有找到一个。我想,这可能是因为我对URL请求的理解不够。下面是代码

var http = require('http');
var url = require('url');
var items = [];
http.createServer(function (req, res) {
switch(req.method){
    case 'POST':
        var item="";
        req.setEncoding('utf-8');
        req.on('data', function (chunk){
            item+=chunk;
        });
        req.on('end', function (){
            items.push(item);
            res.end();
        });
        break;
    case 'GET':
        items.forEach(function (item, i){
            res.write(i+') '+item+''n');
        });
        res.end();
        break;
    case 'DELETE' : 
        var path = url.parse(req.url).pathname;
        var i = parseInt(path.slice(1),10);
        if(isNaN(i)){
            res.statusCode = 400;
            res.end('Invalid argument !');
        }
        else if(!items[i]){
            res.statusCode = 404;
            res.end('Item not found');
        }
        else{
            items.splice(i,1);
            res.end('Deleted!');
        }
  }
 }).listen(3000);

如果可能的话,有人能解释一下这个URL请求是如何工作的吗

我在阅读《NodeJS in Action》这本书时也遇到了这个问题。为了使用curl执行删除请求,我在终端中输入以下内容。

curl -X DELETE http://localhost:3000/1

末尾的数字是我希望删除的列表项的索引号。