ExpressJS API-маршрутов при размещении приложения в подкаталоге - PullRequest
0 голосов
/ 28 марта 2020

У меня есть одно приложение, размещенное на root, и я хотел бы разместить это новое приложение в подкаталоге / rps, используя proxypass et c. Все работает нормально, за исключением случаев, когда я пытаюсь вызвать свой API, я получаю 404 ошибки в маршрутах, например https://myapp.com/rps/api/posts/. Приложение переднего плана в основном stati c подается из папки publi c в express.

. Открыто для любых идей о том, что я могу делать неправильно или альтернативными методами. Мне бы очень не хотелось иметь новый сервер для этого небольшого приложения, и я не могу встроить его в уже существующее приложение. Конечно, маршруты работали локально, но только в том случае, если я размещаю сервер в моем странном сценарии на сервере ...

См. Код:

(сервер) index. js:

const config = require('./config.js');    

const app = express()
const port = process.env.PORT || 5000;   

var indexRouter = express.Router();    

const posts = require('./routes/api/posts')

indexRouter.use('/api/posts', posts)    

app.use(express.static(__dirname+ '/public'))

indexRouter.get(/.*/, (req, res) => res.sendFile(__dirname+'/public/index.html'))

app.use(config.baseUrl, indexRouter);

(сервер) config. js:

module.exports  = {
    baseUrl: '/rps/',
}

(сервер) ./routes/api/posts.js:

const router = express.Router()

router.post('/', (req, res) => {
    //gets my thang in action...
})

module.exports = router

( клиент) main. js:

axios.post('/api/posts/', { //  /rps/api/posts ??
    stuff: things,    
})
.then(function (response) {
    // do something else
})
.catch(function (error) {
    console.log(error);
})

Заранее спасибо!

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