Узел Express прокси получает код состояния: 404 не найден вместо 200 кодов успеха - PullRequest
0 голосов
/ 23 января 2020

Мой сервер. js Файл выглядит следующим образом:

const express = require('express');
const http = require('http');
const path = require('path');
//const request = require('request');
const app = express();
var cors = require('cors')
app.use(cors())

app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header("access-control-allow-credentials", "true"),
        // res.header("access-control-allow-methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS"), 
        res.header("access-control-allow-methods", "GET, POST, PUT, DELETE, PATCH, OPTIONS"),

        next();
});

var corsOptions = {
    origin: 'http://localhost:8080',
    optionsSuccessStatus: 200
}

const port = process.env.PORT || 3001;

app.use(express.static(__dirname + '/dist/myApp'));

app.get("/*", (req, res) => res.sendFile(path.join(__dirname)));

app.post("/dashboard", cors(corsOptions), function(req, res) {
    console.log(req.headers); // the posted data
    console.log(req.query.module);
    res.sendStatus(200)
});

const server = http.createServer(app);

server.listen(port, () => console.log('Running......'));

Когда я делаю сервер узла. js и нажимаю http://localhost: 3001 / в браузере i я получаю свою страницу, о которой я упомянул / dashboard в этом же файле.

Но я получаю код состояния: 404 Not Found. URL отображается на вкладке сети: http://localhost: 3001 / student / allstudent .

Что еще я должен изменить? если начать с proxy.conf. json с портом 4200, он будет работать нормально. но теперь я не начинаю как proxy.conf. json, потому что я запускаю сервер узлов. js. может помочь мне мы должны предоставить любой прокси для express, отличный от angular сервера узла.

1 Ответ

0 голосов
/ 23 января 2020

? Это пример структуры моей папки:

/**
 * dist
 *   - myApp
 *     - index.html
 * src
 *   index.js
 * package.json
 */

В моем index.js я использую ваш код выше, но в вашем app.get('/*') я меняю этот код ниже ?:

app.get("/*", (req, res) => res.sendFile(path.join(__dirname, '../dist/myApp', 'index.html')));

С кодом выше ? все работает нормально.

Обновлено: почему вы получаете ошибку?

? Почему вы получаете 404 ошибку , когда отправляете запрос POST, потому что у вас нет POST метода на вашем express сервере.

??‍? Так, например, , вы можете добавить тот же маршрут, что и выше, и не забудьте изменить метод с GET на POST.

Пример того же маршрута, что и POST method

app.post("/*", (req, res) => res.sendFile(path.join(__dirname, '../dist/myApp', 'index.html')));

Итак, теперь у вас есть 1 маршрут, который совпадает с 2 методами, а именно GET и POST, как показано ниже:

// route with GET METHOD
app.get("/*", (req, res) => res.sendFile(path.join(__dirname, '../dist/myApp', 'index.html')));
// route with POST METHOD
app.post("/*", (req, res) => res.sendFile(path.join(__dirname, '../dist/myApp', 'index.html')));

Теперь вы можете попробовать еще раз , если он работает с методом POST и вам не нужен метод GET, тогда вы можете удалить их с помощью метода GET.

Я надеюсь Это может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...