-
создать пустую папку и зайти в неё:
mkdir fake-server
cd ./fake-server
-
создать пустой файл server.js
cat server.js
- Инициализация Node.js
npm init
- отвечаем всё ОК
-
Установка модуля сервера:
npm i json-server
-
Создать/отредактировать свой файл: package.json
package.json
{ "name": "fake-server", "version": "1.0.0", "description": "fake server with fake database", "main": "server.js", "scripts": { "start": "node server.js" }, "author": "IURII BUDARIN", "license": "ISC", "dependencies": { "json-server": "^0.17.0" } }
-
create .gitignore file and add node_modules
-
add in file server.js:
server.js
const jsonServer = require('json-server'); const server = jsonServer.create(); const router = jsonServer.router('db.json'); // <== Will be created later const middlewares = jsonServer.defaults(); const port = process.env.PORT || 3200; // <== You can change the port server.use(middlewares); server.use(router); server.listen(port);
-
Идём в свой github и создаём новый репо. После чего добавляем свой файлы в github:
git init
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/ynbudarin/fake-server.git
git push -u origin main
- Create db.json file
cat db.json
db.json
{
"users": [
{
"id": 1,
"first_name": "Justina",
"last_name": "Ginglell",
"email": "jginglell0@networkadvertising.org",
"gender": "Female"
},
{
"id": 2,
"first_name": "Marion",
"last_name": "Jenman",
"email": "mjenman1@surveymonkey.com",
"gender": "Male"
},
{
"id": 10,
"first_name": "Ingrim",
"last_name": "Offen",
"email": "ioffen9@slideshare.net",
"gender": "Male"
}
]
}
- push db.json file to github
git add .
git commit -m "creating the database"
git push
- Локальная проверка (запускаем сервер):
npm start
- зайти по адресу http://127.0.0.1:3000
- остановить: CTRL+C
- создать аккаунт (Я создал: fake-server-2022)
- создать своё свой новый app
- Для простоты выбираю Deployment method - GitHub (я привязываю heroku к свою аккаунту)
- по имени ищу свой репо в github и подключаю
-
соглашаюсь Automatic deploys
-
Нажать Deploy Branch
- должна пойти компиляция (там же можно глянуть логи самого процесса)
-
Теперь наша ссылка готова: https://fake-server-2022.herokuapp.com/
- внёс изменения локально (в своём VS Code)
- проверил локально через heroku, что всё работает: -
heroku local web
- запушил в свой github:
git add .
git commit -m "change to be a async race app"
git push
- идём в heroku (через heroku ps:scale web=0 не удалось обновиться)
- делаем Manual deploy и ждём сообщения ниже на странице: Your app was successfully deployed.
- проверил локально через heroku, что всё работает: -
- согласно инструкции надо скачать heroku CLI
heroku login
- залогинимся и можно работать
-
git --version
npm --version
node --version
-
посмотреть логи по нашему приложению:
heroku logs --tail --app fake-server-2022
-
Наш app работает в контейнере Dyno и может уснуть. Проверим его статус:
heroku ps --app fake-server-2022
- По умолчанию ваше приложение развертывается на бесплатном динамометрическом стенде. Бесплатные динамометры засыпают через полчаса бездействия (если они не получают никакого трафика).
-
Как запустить или вырубить использование Dyno-контейнера:
heroku ps:scale web=1 --app fake-server-2022
- стартанутьheroku ps:scale web=0 --app fake-server-2022
- остановить
-
Зайти в консоль контейнера нашего приложения
heroku run bash --app fake-server-2022
-
Запустить своё приложение локально (средствами Heroku CLI):
heroku local web
- надо находиться в папке с файлами
- heroku пофиг на ваш порт, так что адрес будет http://localhost:5000