Home > Enterprise >  Node app deployed on heroku - getting 404 error (even when url is correct)
Node app deployed on heroku - getting 404 error (even when url is correct)

Time:09-21

I have deployed my backend on heroku and I have a test get request's response on /

app.get('/', (req, res) => {
    res.send("Hello, World. The app is running!");
});

On hitting the / end point that is https://ayush-portfolio-backend.herokuapp.com/, I get the expected GET output.

But, when from the frontend react app, I hit any POST endpoint, e.g.:-

// index.js
app.use('api/portfolios/', (require('./routes/portfolio')));

// portfolio route
router.post('/getportfolios', async (req, res) => {...});

I am unable to get any response on the frontend.

As suggested by heroku docs, when I do heroku logs
I get the following error:-

2022-09-21T07:57:41.743176 00:00 heroku[router]: at=info method=OPTIONS path="//api/portfolios/getportfolios" host=ayush-portfolio-backend.herokuapp.com request_id=0aff16a8-8aee-499e-a69e-4bdf8d583e6d fwd="103.164.24.154" dyno=web.1 connect=0ms service=5ms status=204 bytes=312 protocol=https2022-09-21T07:57:41.808753 00:00 heroku[router]: at=info method=OPTIONS path="//api/portfolios/getportfolios" host=ayush-portfolio-backend.herokuapp.com request_id=3c1974f2-522c-47b8-92d8-2f201bd0e2ab fwd="103.164.24.154" dyno=web.1 connect=0ms service=1ms status=204 bytes=312 protocol=https2022-09-21T07:57:42.054955 00:00 heroku[router]: at=info method=POST path="//api/portfolios/getportfolios" host=ayush-portfolio-backend.herokuapp.com request_id=6092ee53-d98d-4fa0-9fff-abd46554de56 fwd="103.164.24.154" dyno=web.1 connect=0ms service=10ms status=404 bytes=445 protocol=https  
2022-09-21T07:57:42.172808 00:00 heroku[router]: at=info method=POST path="//api/portfolios/getportfolios" host=ayush-portfolio-backend.herokuapp.com request_id=cbe7b873-b4f5-4eb6-a80f-12fd1018029a fwd="103.164.24.154" dyno=web.1 connect=0ms service=2ms status=404 bytes=445 protocol=https

I don't know what is causing the following error. The app works perfectly fine on the local environment, but don't know why the problem has occured.

I am a beginner for heroku and I don't know much about it, also i searched the google and stackoverflow for the error but did not find any relevant solution to the problem.

I just assume that the error can be because of some double / // creating in the path as in the error it is shown e.g. path='//api/portfolios/getportfolios'. So, I also tried removing the / from frontend and everywhere else trying to make it sinbgle / but this didn't solve the problem.

Can someone please guide me to find the solution of the above problem. Thank you!

////////////////EDIT////////////////
portfolio route file: github

CodePudding user response:

try

// index.js
const portfolioRoutes = require('./routes/portfolio');
app.use('/api/portfolios', portfolioRoutes);

// portfolio route
router.post('/getportfolios', async (req, res) => {...});
  • Related