【问题标题】:All Node.js/Express routes returning 404 on hosted server所有 Node.js/Express 路由在托管服务器上返回 404
【发布时间】:2017-08-23 09:01:21
【问题描述】:

我最近开始使用 node.js 构建应用程序。一段时间后,我想将其移至我的主机帐户以进行真正的测试。

首先我从源代码安装了 nodejs。 然后除了数据库登录之外,我没有对代码进行任何更改。当我运行它时,没有错误。我兴奋地试了一下。令我沮丧的是,我编写的每条路线都得到了 404。

例如:

router.route('/new')
.post(function(req, res){
    //My Route Code
});

app.use('/api', router);

然后我去:

mywebsite.com/api/new

这会从我的 apache 服务器返回 404 Not Found 错误。

我还想指出,我正在使用共享主机,并且我还在我的测试服务器上离线彻底测试了我的代码。

如何修复它,以便我的代码实际路由我的请求?

【问题讨论】:

  • 检查您要重定向域的服务器 url 和端口号
  • nodejs 自动成为本地主机服务器,在我的托管服务器上,端口为 8080。
  • 您是在向 url 发布内容还是在获取您的请求?
  • 我有这两种方法,但我正在测试一个 GET 函数。我认为它是,它只是没有通过表达。我不知道为什么。
  • 为什么要传给Express?您是如何配置 Apache 的?

标签: javascript node.js apache http


【解决方案1】:

看来这不是您的 Node 应用程序的问题,而是您的 Apache 配置的问题。

如果是 Express 给您 404,那么您应该会在正文中看到 404 响应,其中包含纯文本:

Cannot GET /api/new

这是一条标准的 Express 消息。如果您没有看到它,那么给出答案的不是 Express,而是其他东西——可能是 Apache。

确保您的 Apache 已正确配置为您尝试从浏览器访问的主机名和端口的反向代理,并将请求传递到可以访问您的 Node 应用程序的正确主机和端口。

查看那些教程:

【讨论】:

  • 不,我得到一个 404 Not Found,而不是标准的 Express 错误。我不认为它没有表达出来
【解决方案2】:

sudo 服务 apache2 删除
节点app.js

如果您需要 apache 上的节点,请参阅此文档
Apache and Node.js on the Same Server

【讨论】:

    猜你喜欢
    • 2018-01-20
    • 2020-09-08
    • 2017-03-24
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2018-02-26
    相关资源
    最近更新 更多