Namecheap:Node JS Express应用-未找到应用路由返回404

时间:2019-05-19 00:20:12

标签: node.js express namecheap

尝试使用NameCheap共享主机启动Simple Express应用程序。

我已经按照NodeJS NameCheap Docs

所述设置了Node JS应用程序。

当前设置:

Application Root: url.com
Application URL: url.com
Application Startup File: server.js

我已使用提供的按钮运行了NPM安装

我尝试加载URL http://url.com/hello,期望Hello World显示在页面中。

var express = require("express");
var app = express();
const port = 3001;

app.set("port", port);

app.get("/hello", function(req, res) {
  res.send("hello world");
});

app.listen(app.get("port"), () =>
  console.log("Started listening on %s", app.get("port"))
);

导航到http://url.com/hello时得到的结果:

Not Found
The requested URL /index.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

2 个答案:

答案 0 :(得分:2)

Namecheap仅告诉您如何配置nodejs应用程序,但是其托管基于cPanel,这需要您配置Web服务器(通常为Apache)。一旦您运行了应用程序,就会有一个特殊的按钮来为apache配置注册它,也可以从您的域中运行它。我不知道具体的步骤,但您应该要求NC支持将您定向到他们的文档,以配置apache以运行您配置的nodejs应用。 如果他们没有从知识库中链接文章,请使用此链接:https://confluence1.cpanel.net/plugins/servlet/mobile?contentId=17190639#content/view/17190639 基本上,您现在需要的是在服务器中配置cPanel或ssh并在本地测试您的应用程序。有很多情况可能会导致您的问题,例如错误的apache配置(您的默认端口80正在寻找php应用程序),端口未打开/防火墙,应用程序未注册-所有这些都是cPanel特定的。 为了确保您阅读的文档正确,请在namecheap cpanel中找到docs按钮,然后检查以上所有内容。很明显,需要配置什么-您的nodejs代码可能不是这里的原因

答案 1 :(得分:0)

以我为例,这是 .htaccess 文件的问题。在网站的公共目录中的 .htaccess 文件中添加以下规则对我有帮助:

# CLOUDLINUX PASSENGER CONFIGURATION BEGIN
PassengerAppRoot "/home/<user>/<your_nodejs_app_folder>"
PassengerBaseURI "/."
PassengerNodejs "/home/<user>/nodevenv/<nodejs_app>/<version>/bin/node"
PassengerAppType node
PassengerStartupFile <startup_script>.js
# CLOUDLINUX PASSENGER CONFIGURATION END

对上述规则进行必要的更改,然后将其粘贴到您的.htaccess文件中。另外,以防万一,请通过客户支持确认您使用的端口是开放的。