Нужна помощь, чтобы выложить проект 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 и тд.