错误503尝试使用节点在mongodb中删除并在heroku中托管

时间:2015-01-12 20:48:03

标签: node.js heroku

使用mongoose连接到mongolab并托管在heroku中。方法获取,发布,放置工作完美但删除是“问题”。

当我试图删除时。我先拿到了。

Request URL:https://---------.herokuapp.com/------/54b413c2647bec02001efdd0
Request Headers 
Provisional headers are shown
Accept:application/json, text/plain, */*
Origin:null
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/39.0.2171.95 Safari/537.36

或多或少30秒后我得到了这个。

Remote Address:150.100.2.200:8080
Request URL:https://---------.herokuapp.com/------/54b413c2647bec02001efdd0
Request Method:DELETE
Status Code:503 Service Unavailable
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,es-419;q=0.6,es;q=0.4,fr;q=0.2
Host:-----.herokuapp.com
Origin:null
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/39.0.2171.95 Safari/537.36
Response Headersview source
Cache-Control:no-cache, no-store
Connection:keep-alive
Content-Length:484
Content-Type:text/html; charset=utf-8
Date:Mon, 12 Jan 2015 20:36:33 GMT
Server:Cowboy

我有这个。向我显示错误503,但..如果我在mongolab网页上发现该项目已经消失。当我在我的本地机器上测试它一切正常,包括删除方法,但使用heroku我遇到了这个问题。

-CORS avaliable。

- 这是我试图获得相同结果的3种不同方式。

exports.deleteNotificacion = function(req, res) {
 var id = req.params.id;
   console.log(id);
Todo.findById(id,function(err,notificacion){
    notificacion.remove();
    notificacion.save();       
       }); }


exports.deleteNotificacion = function(req, res) {
   var id = req.params.id;
console.log(id);
Todo.findById(id,function(err,notificacion){

      notificacion.remove (function(err){
        if (!err) {
          res.send('');
          console.log('Removed');
        }else {
          console.log('ERROR: ' + err);
        };
      })

    }); }


exports.deleteNotificacion = function(req, res) {
 var id = req.params.id;
console.log(id);
Todo.findByIdAndRemove(id,function(err){    
        if(err){console.log("ERROR " + err);}
           // res.send("eliminado");
           });}

1 个答案:

答案 0 :(得分:1)

您发布的代码示例很难阅读,但如果请求成功,您似乎不会向客户端发送任何内容。等待Heroku路由器超时30秒后,您的客户端获得503页,如in this blogpost所述。

对DELETE请求的正确响应之一是发送没有正文的HTTP 204代码:

res.status(204).end();