【问题标题】:Only some routes work on Node express只有一些路由适用于 Node express
【发布时间】:2017-03-14 03:30:02
【问题描述】:

我在本地开发网站已有一段时间了。使用 Ubuntu、nodejs 和 express。我最近将它移到了 Dreamhost 上的 VPS,它有一些奇怪的行为。在我的本地主机上一切正常,但在 VPS 上只有一些路由有效。我的意思是如果我去mydomain.com 然后我会得到这个网站。然后,如果我转到mydomain.com/panel,它会加载,但是,它应该检查用户会话但没有,它只是将它们发送到面板。然后,如果我尝试转到mydomain.com/contact 或我网站上的任何其他路线,它就不会加载。我收到 500 错误。

这是我的panel 路线,在routes/panel.js 中找到

router.get('/', function(req, res, next) {
  var sess = req.session;
  if(sess.user) res.status(200).sendFile(path.resolve(__dirname + '/../public/panel.html'));
  else res.status(200).sendFile(path.resolve(__dirname + '/../public/admin.html'));
});

这是我的contact 路线,在routes/contact.js 中找到

router.get('/', function(req, res) {
  res.send("Hello");
});

app.js 我这样添加这两条路线,

app.use('/contact', contact);
app.use('/panel', panel);

这一切都适用于我的本地主机。所有正确的模块都存在。由于某种原因,它无法在 Dreamhost VPS 上运行。

有什么想法吗?

【问题讨论】:

    标签: node.js express dreamhost


    【解决方案1】:

    适用于在使用 Dreamhost VPS 时偶然发现此问题的任何人。我遇到的问题是我忘记设置代理服务器并在正确的端口上运行 nodejs。不知何故,Dreamhost 正在渲染我的公共文件夹中的文件,但实际上并没有使用 nodejs 来完成它。简单的解决方法是在 8000 端口创建代理服务器,然后在 8000 端口运行 nodejs。

    【讨论】:

    • 嗨!怎么做呢?
    • @Cullub 我在 4 年前做过这个,所以我不记得了,所以我不能给你答案。但是,自从我担任软件工程师以来,我建议离开 DreamHost 并更多地关注 AWS、Azure 或 Google Cloud 等云服务。
    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多