Я протестировал следующий экспресс-сервер node.js на моем локальном компьютере (Windows 10), и он работал как положено.
// 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, и там я получаю сообщение об ошибке «Cannot GET // test» при попытке вызвать myserv / api / test.
То же самое происходит с myserv / api / testSubmit ("Cannot POST //testSubmit").
Что работает:
Статический контент работает наUbuntu, если я вызываю myserv / api /, я получаю содержимое файла index.html, который находится в «публичной» папке.
Что я тестировал до сих пор:
- Удаление кода статического содержимого> без эффекта
- Обновленные Node.js и NPM> без эффекта
- npm install> без эффекта
- chmod -R 777 вклпапка моего узла> без эффекта
Кто-нибудь знает, что мне не хватает?