I have a problem when I deploy my NodeJS API on CPANEL shared hosting. My application is working very well on localhost but when I deploy it, the home route is the only one working, all remaining routes are not working (500 Internal error). I use Express.
const express = require('express');
const cors = require('cors');
const app = express();
require('dotenv').config();
// Import Routes
const productsRoute = require('./routes/products');
// Middleware
const corsOpts = {
origin: '*',
methods: ['GET', 'POST', 'PUT', 'DELETE'],
allowedHeaders: ['Content-Type'],
};
app.use(cors(corsOpts));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use('/products', productsRoute);
app.get('/hello', (req, res) => res.send('Hello World !'));
app.get('/', (req, res) => {
res.send("OK");
});
app.listen();
Can somebody Help me please ?
Thank you !
I solved the case after testing many methods. It was a passenger configuration problem In my generated .htaccess file, I add the following lines on the top
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule ^server/(.*)?$ https://127.0.0.1:3000/$1 [P,L]
And in my nodeJS app I listen on port 3000.