我已经从a2hosting.com购买了共享主机。 我在Node.js中使用Express Web框架进行API开发。目前,当我运行app.js并尝试从浏览器运行时,每次都会显示404错误:
const express = require("express");
const app = express();
const router = express.Router();
app.get("/", function(req,res){
res.json({status:200});
});
app.listen();
当我浏览www.mydomain.com/app时 它应该返回json响应
答案 0 :(得分:1)
如果您没有传递端口号,如下所示:
app.listen(80)
或
app.listen(30001);
然后,操作系统将分配一个客户端不知道的随机端口号,因此您无法从客户端联系该服务器。
您应该使用默认的http端口80,客户端和服务器都同意使用的特定端口或托管服务提供商分配给您的端口号。
您可能还需要按照托管服务提供商的安装说明中的here在托管服务提供商处进行正确配置,以便将传入请求定向到本地服务器。
此外,您似乎需要在a2hosting.com上使用特定类型的“托管主机”帐户才能运行node.js服务器,并需要在特定数字范围内选择端口。
答案 1 :(得分:0)
首先感谢您的帮助。好吧,我已经尝试过以下方法,但还没有成功
app.listen(30001);
当我在.htaccess中使用以下行时,所有请求均转发至节点应用程序,这是错误的,因为我在php中拥有前端页面,而节点api作为后端
DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:XXXXX/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:XXXXX/$1 [P,L]
答案 2 :(得分:0)
您似乎在尝试访问www.mydomain.com/app
时没有正确的路由(就您提供的代码段而言)。
首先,您应该通过访问404 Not Found
来确定响应www.mydomain.com
来自何处,并查看其是否返回正确的响应:200 OK
。
如果响应很好,则表明后端服务器实际上是可访问的。