NodeJS '/' home route is working but the remaining routes are not working (CPanel Shared Hosting)
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.
[CODE=javascript]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 !
Can somebody Help me please ? Thank you !
-
I use LWS hoster in France. I don't know if you can directly help me with a ticket. I use the NodeJS Setup rather than Application Manager as indicated in your documentation. You can see the configuration on the attached file and my .htaccess has this generated code : # DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION BEGIN PassengerAppRoot "/home/cp1125587p04/api-cosmeclass" PassengerBaseURI "/" PassengerNodejs "/home/cp1125587p04/nodevenv/api-cosmeclass/10/bin/node" PassengerAppType node PassengerStartupFile app.js PassengerAppLogFile "/home/cp1125587p04/api-cosmeclass/api.logs" # DO NOT REMOVE. CLOUDLINUX PASSENGER CONFIGURATION END # DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION BEGIN # DO NOT REMOVE OR MODIFY. CLOUDLINUX ENV VARS CONFIGURATION END0 -
I don't have root access, it's a shared hosting. I don't think It's a nodejs problem because the program works perfectly fine in localhost 0 -
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/(.*)?$ http://127.0.0.1:3000/$1 [P,L]
And in my nodeJS app I listen on port 3000 Thank you0 -
I'm glad you were able to track that down! 0
Please sign in to leave a comment.
Comments
6 comments