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

Error 503 trying to delete in mongodb using node and hosted in heroku

使用 mongoose 连接到 mongolab 并托管在 heroku 中。方法 get、post、put 工作得很好,但删除是 "problem"。

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

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 可用。

-我尝试了 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");
           });}

您发布的代码示例难以阅读,但如果请求成功,您似乎没有向客户端发送任何内容。在等待 Heroku 路由器超时 30 秒后,您的客户端会收到一个 503 页面,如 in this blogpost 所述。

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

res.status(204).end();