Нужна помощь, чтобы выложить проект node.js на хостинг

Я думаю что легче всего будет выложить на Vercel, но если можете помочь выложить на другой хостинг, то не против(только Heroku не работает, не регистрируется). Есть вот такой проект на node.js:

Использую node.js, express, mongoDB, .ejs

package.json:

{
  "name": "test-server",
  "version": "1.0.0",
  "main": "app01/server.js",
  "scripts": {
    "dev": "nodemon server.js",
    "build": ""
  },
  "author": "Kozoroz Dmytro",
  "license": "ISC",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "chalk": "^4.1.2",
    "connect-mongo": "^5.1.0",
    "cookie-parser": "^1.4.6",
    "cookies": "^0.9.1",
    "ejs": "^3.1.9",
    "express": "^4.18.2",
    "express-session": "^1.18.0",
    "method-override": "^3.0.0",
    "mongodb": "^6.3.0",
    "mongoose": "^8.1.3",
    "morgan": "^1.10.0",
    "netlify-lambda": "^2.0.16"
  },
  "devDependencies": {
    "nodemon": "^3.0.3"
  },
  "description": "",
  "engines": {
    "node": "^18.18.2"
  }
}

server.js:

const chalk = require('chalk');

const bcrypt = require('bcryptjs');

const express = require('express');

const app = express();

const morgan = require('morgan');

const mongoose = require('mongoose');

const postRoutes = require('./routes/post-routes');

const log_regRoutes = require('./routes/log_reg-routes');

const createPath = require('./helpers/create-path');

const postApiRoutes = require('./routes/api-post-routes');

const port = 8080;

const errorMsg = chalk.bgKeyword('white').red;

const successMsg = chalk.bgKeyword('white').green;

const session = require('express-session')

const MongoStore = require('connect-mongo'); 

const methodOverride = require('method-override');

const { handleError } = require('./controllers/error-controller');
mongoose
  .connect("mongodb+srv://123Xaker321:[email protected]/FirstDB?retryWrites=true&w=majority&appName=Cluster0")
  .then((res) => console.log(successMsg('Connected to DB')))
  .catch((error) => console.log(errorMsg(error)));

  app.set('view engine', 'ejs');

app.listen(port, (error) => {
    error ? console.log(errorMsg(error)) : console.log(successMsg(`listening port ${port}`));
  });
  app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));
  
  app.use(express.urlencoded({ extended: false}));
  
  app.use(express.static('app01/ejs-public'));
  app.use(session({ 
    name: 'SessionName123', 
    secret: 'Super-omega-secret', 
    resave: false, 
    saveUninitialized: false, 
    store: MongoStore. create ({ 
        mongoUrl: 'mongodb+srv://123Xaker321:[email protected]/FirstDB?retryWrites=true&w=majority&appName=Cluster0' 
    }),
    cookie: {
      secure: false,
      httpOnly: true,
      maxAge: 1000 * 60 * 30
    }
})); 
app.use(methodOverride('_method'));
  app.get('/', (req, res) => { 
    const title = 'Домашня сторінка';
    res.render(createPath('index'), { title });
  });
  app.get('/home', (req, res) => {
    res.redirect('/');
  });
  app.get('/index.html', (req, res) => {
    res.redirect('/');
  });
  
  app.use(log_regRoutes);
  app.use(postRoutes);
  app.use(postApiRoutes);
   app.use((req, res) => {
    const title = 'Помилка 404';
    const error = "Сторінку не знайдено";
    handleError(req, res, title, error);
  });
  
  

Вот структура моего проекта

Вот ссылка на мой сайт, страниц нету, потому что не могу разобраться с хостингом: https://first-backend-virid.vercel.app/

В настройках проекта задал:

root-directory: app01

Output Directory: ejs-public(override)

Install command: npm install(override)

Build Command, Development Command оставил без override

Также не разобрался что писать в скрипте build

Нужна помощь с настройкой проекта на хостинге, из вывода сайта только скачивается какой-то неизвестный файл на главной странице и скачиваются страницы по путям по типу /index.ejs, /posts.ejs, /account.ejs и тд.


Ответы (0 шт):