切换node.js应用时localhost:3000不会改变

时间:2014-08-30 02:56:14

标签: javascript node.js redirect networking localhost

当我运行一个新的node.js应用程序(调用此应用程序2)时,发生了一些奇怪的事情(阅读:我不理解的事情):我在处理另一个应用程序后尝试运行应用程序2 (app1)白天早些时候。对于以前的应用程序,我在代码中有一些东西自动将localhost:3000重定向到特定站点。我当天早些时候停止运行该应用程序。

当我尝试运行同时使用端口3000和localhost的新app2时,即使之前重定向的应用程序没有运行,它仍会自动重定向。

app1正在使用express.js。 app2不是。如果有人认为任何特定的代码会有所帮助,我会非常乐意提供,但我不知道在哪里看,因为我似乎有标准代码只会重定向localhost:3000并且代码是重定向了一些其他通用网站。 facebook.com在我的主机文件中编辑,转到我的localhost ip地址。 以下是其中一些内容:

app.get('*',function(req,res){
    console.log(req.get('host')+req.originalUrl);
    if(req.get('host')+req.originalUrl == "facebook.com:3000/"){
        res.redirect(301,'https://github.com');
    }
    else{
        res.redirect(301,'https://google');
    }
});

...

app.listen(app.get('port'), function() {
  console.log("✔ Express server listening on port %d in %s mode", app.get('port'), app.settings.env);
});

因此,在运行新应用时,我被吓坏了为什么它仍会重定向。

此外,当我更改新应用中的代码以重定向到端口4000时,localhost:3000仅适用于我的新应用,然后在使用4000后将其更改回3000.

如果有人知道为什么会这样,请告诉我!

感谢。

1 个答案:

答案 0 :(得分:1)

您正在进行301重定向。这是永久重定向。浏览器,代理和其他所有内容都可以无限期地缓存它。

考虑302或307。