删除节点中的URL请求

时间:2014-06-08 19:30:45

标签: javascript node.js

我正在浏览名为Node js的节点js(第一个服务器端语言)书。有一个关于使用cURL的restful服务实现的示例。我不明白如何向服务器发送删除请求网址。我尝试过不同的组合以使其有效,但无法找到。我猜,这可能是因为我对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);

如果可能,有人可以向我解释此网址请求的工作原理。

1 个答案:

答案 0 :(得分:0)

我在阅读本书的NodeJS in Action时遇到了这个问题。要使用curl执行删除请求,我将其键入终端。

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

最后的数字是我想删除的列表项的索引号。