Ubuntu Node.js Express 服务器错误 "Cannot GET //test"

Ubuntu Node.js Express Server Error "Cannot GET //test"

我在我的本地机器 (Windows 10) 上测试了以下 node.js express 服务器,它按预期工作。

// Imports
const express = require('express');
const { check, validationResult } = require('express-validator/check');
const bodyParser = require('body-parser');
const path = require('path');
const session = require('express-session');

// app
const app = express();

// Body Parser Middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

// Get static path
app.use(express.static(path.join(__dirname, 'public')));

// Get requests
app.get('/test', (req, res) => {
    res.end('Hello World');
});

// Validation test
app.post('/testSubmit', [
    check('mail').isEmail(),
    check('password').isLength({ min: 5 })
], (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
        return res.status(422).json({ errors: errors.array() });
    }

    console.log(req.body);

    res.end();
});

// Start listening
app.listen(3000, function() {
    console.log('Server started on Port 3000');
});

错误:

但现在我将我的代码上传到 ubuntu 服务器,当我尝试调用 myserv/api/test 时出现错误 "Cannot GET //test"。

与 myserv/api/test提交 ("Cannot POST //testSubmit") 相同。

什么有效:

静态内容适用于 ubuntu,如果我调用 myserv/api/,我会得到位于 "public" 文件夹中的 index.html 的内容。

到目前为止我测试的内容:

有人知道我错过了什么吗?

问题已经解决,跟node无关。 问题是我与 apache 运行 node.js 一起使用的反向代理。

Windows:

ProxyPass http://192.168.3.132:3000
ProxyPassReverse http://192.168.3.132:3000

Ubuntu:

ProxyPass http://192.168.1.12:3000/
ProxyPassReverse /api http://192.168.1.12:3000/

我刚刚在 URL 之后有一个不属于那里的 /(仅在我的 Ubuntu 服务器上)