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 !
2
Answers
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
And in my nodeJS app I listen on port 3000.
Make sure you have Application Manager installed in your cPanel, otherwise contact with your Hosting provider to install Application Manger in the WHM.
export PATH=/opt/cpanel/ea-nodejs16/bin/:$PATH
at your .bashrc file
OR