只有一些路由可以在Node express上运行

时间:2017-03-13 07:23:09

标签: node.js express dreamhost

我一直在本地开发一个网站。使用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);

这一切都适用于我的localhost。所有正确的模块都存在。由于某种原因,它不适用于Dreamhost VPS。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于任何在使用Dreamhost VPS时遇到这种情况的人。我遇到的问题是我忘了设置代理服务器并在正确的端口上运行nodejs。不知何故,Dreamhost在我的公共文件夹中渲染文件,但实际上并没有使用nodejs来完成它。只需通过创建代理服务器到端口8000然后在端口8000上运行nodejs来解决它。