Node.js Express 仅适用于主页

Node.js Express only working for home page

我是 运行 Node.js Plesk Obsidian 18.0.37。我无法跟随 link 到第 2 页,只能访问主页。如果我确实按照 link 或手动转到 /page2,我将收到 404 响应。怎么会这样?

app.js:

const express = require('express');
const app = express();

app.get("/", (request, response) => {
    response.send("<h1>Home page</h1>" + 
                  '<br><a href="/page2">Page 2</a>');
});

app.get("/page2", (request, response) => {
    response.send("<h1>Page 2</h1>");
});

app.listen(process.env.PORT);

我也试过了:

按照 Aqua

的建议提供文件
const express = require('express');
const app = express();

app.get("/", (request, response) => {
    response.send("<h1>Home page</h1>" +
                  '<br><a href="/page2">Page 2 with sendFile</a>');
});

app.get("/page2", (request, response) => {
    response.sendFile('page2.html');
});

app.listen(process.env.PORT);

按照 Harshit Rastogi

的建议使用路由器
const express = require('express');
const app = express();
var router = express.Router();

router.get("/", (request, response) => {
    response.send("<h1>Home page with router</h1>" +
                  '<br><a href="/page2">Page 2</a>');
});

router.get("/page2", (request, response) => {
    response.send("<h1>Page 2 with router</h1>");
});

app.use(router);
app.listen(process.env.PORT);

我还是无法跟随 link 到第 2 页,只能访问主页。

尝试将 app 变量的声明更改为:

const app = express.Router();

我不是很擅长快递但是试试

app.get("/page2", (request, response) => {
    response.send("./link-to-html-file");
});

你启用nginx反向代理了吗?

How to install and enable nginx reverse proxy on a Plesk?

您发布的每个代码都对我有用。 您的错误似乎与端口 and/or 代理有关。

我已经复制了你的 app.js 文件,对我来说一切正常,macOS。

请看这个post:https://talk.plesk.com/threads/webpages-are-no-longer-reachable-after-update-from-17-8-to-18-0.359321/

据我所知,这已在下一个版本 18.0.38 中得到修复,或者应用他们正在为版本 18.0.37 进行的修复。

设法通过从 Windows 服务器切换到 Linux 服务器来解决此问题。