Node.js сервер вместо ответа отдает html файл
Первый раз создал сервер на ноде и не совсем понимаю что происходит в прод. режиме Приложение на связке реакт+нода. По идее, бэк нужен только для ручки - постучаться по урлам и отдать клиенту данные как есть. В дев версии все работает отлично - запросы отдаются без проблем. На прод версии, когда идет через build версию работа - запросы падают как 304. В консоли браузера тестил по запросам через xhr - Отдает просто html страницу. Ниже - запрос из клиента, после нодовский app.js Важно, сервер сам разворачивается и отдает по урлу index.html нормально
export const getDataFromServer = async (url: string, opt = 'GET') => {
try {
let response = await fetch(url, {
method: opt,
});
return await response.json();
} catch (e) {
console.log('cannot get data');
}
}
const express = require('express');
const config = require('config');
const path = require('path')
const request = require('request-promise');
const PORT = config.get('port') || 5000;
const app = express();
const url = 'some URL';
const serverOne = 'some URL';
const serverTwo = 'some URL';
if (process.env.NODE_ENV === 'production') {
app.use('/', express.static(path.join(__dirname, 'client', 'build')))
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
})
}
app.listen(PORT, () => {
console.log('success');
});
app.get('/api/vk', async (req, res) => {
const options = {
method: 'GET',
uri: url
}
request(options).then((resp) => {
res.send(resp);
}).catch(() => {
res.send('cant get vk info');
});
});
app.get('/api/serverOne', async (req, res) => {
const options = {
method: 'GET',
uri: serverOne
}
request(options).then((resp) => {
res.send(resp);
}).catch(() => {
res.send('cant get server info');
});
});
app.get('/api/serverTwo', async (req, res) => {
const options = {
method: 'GET',
uri: serverTwo
}
request(options).then((resp) => {
res.send(resp);
}).catch(() => {
res.send('cant get server info');
});
});