NodeJs服务器冻结,ctrl + c偶尔解冻它

时间:2016-12-24 09:30:29

标签: javascript ajax node.js

我有一个回复ajax请求的node.js服务器,我点击了网页并发送了一个ajax调用并且它运行了该函数但偶尔服务器冻结,有时正在执行ctrl+c解冻它并继续处理请求,有时它没有,我必须重新启动它。

代码:

app.use(function(req, res, next) {
    console.log("Header");
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
  console.log("Header sent!")

});

app.get('/', function (req, res) {

    r.getSubreddit('HighRes').getRandomSubmission().then(function(post){

        if(post.url.includes(".jpg")){
            currentUrl = post.url;
            console.log(currentUrl);
            res.send(currentUrl);
            res.end();

        } else{

            console.log("Wrong format");
        }

        });
    console.log("Got request");
    //res.end();


})

var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port

   console.log("Example app listening at http://%s:%s", host, port)
})

1 个答案:

答案 0 :(得分:1)

您的/路线存在一些问题。如果url包含jpg,则表示您正在返回响应,但在其他情况下,您没有返回任何内容。因此,您的请求处于等待状态。

请尝试以下代码。

app.get('/', function (req, res) {
    r.getSubreddit('HighRes').getRandomSubmission().then(function(post){
        if(post.url.includes(".jpg")){
            currentUrl = post.url;
            console.log(currentUrl);
            res.send(currentUrl);
        } else{
            console.log("Wrong format");
            res.send('Wrong format');   //you should return something here too
        }
    });
});