我正在浏览名为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);
如果可能,有人可以向我解释此网址请求的工作原理。
答案 0 :(得分:0)
我在阅读本书的NodeJS in Action时遇到了这个问题。要使用curl执行删除请求,我将其键入终端。
curl -X DELETE http://localhost:3000/1
最后的数字是我想删除的列表项的索引号。