Development of automation for checking uniqueness in STEEMIT. Part 2. Heroku & Nodejs & ClearDB Mysql

in Steem-BRU (BY-RU-UA)4 years ago (edited)

Итак, продолжаем.

image.png

Первая часть: https://steemit.com/hive-171319/@alexmove/razrabotka-avtomatizacii-proverki-unikalnosti-v-steemit-podgotovka-servera-chast-1-development-of-automation-for-checking

В этом посте я полностью создам и разверну на Heroku приложение. Это я делал в одном из дневников: https://steemit.com/hive-171319/@alexmove/the-diary-game-30-december-2021-01-january-2022-december-new-year-and-other

И в этом посте напишу уже инструкцию. И перейду далее, к созданию полноценного (но простейшего) веб-сайта. Это мне нужно, чтобы иметь возможность запускать различные процессы (скрипты), поскольку сейчас у меня вышло запустить лишь один.

Итак, начнем.

mkdir gardenweb
cd gardenweb
express --view=pug gardenweb
npm install
set DEBUG=myapp:* & npm start

http://localhost:3000/

npm start

вот эта строка наиважнейшая:
app.use('/set', setRouter);

То, что запускает

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var setRouter = require('./routes/set');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/set', setRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error');
});

module.exports = app;

Файл в папке routers

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'set' });
});

module.exports = router;

так, это есть, теперь:

git init
heroku login
heroku create

heroku rename gardenweb0301
git remote -v
git add . && git commit -m "update pkg-lock" && git push heroku master
heroku logs --tail

Все ок!
Работает!

https://gardenweb0301.herokuapp.com/set

heroku addons:create cleardb:ignite
heroku config | findstr CLEARDB

CLEARDB_DATABASE_URL: mysql://b9ce03f75c865a:[email protected]/heroku_cfdf255bd781813?reconnect=true

heroku config | findstr CLEARDB

Итак, все работает.
Новая сложность - это количество соединений к BD
Ограничено до 10 штук.

Это уже позже...

Алексей, [03.01.2022 16:46]
скрипты для стимита. Новая проблема - что изза моего некорректного кода я постоянно восстанавливаю обращение к MYSQL базе.. хотя достаточно было бы одного.

Написал в нашем чатике, обращусь и тут:

Кто понимает в nodejs и mysql? Мне просто надо понять как например отключаться правильно, чтобы всегда было только 1 подключение, а то я начинаю там десятками подключаться и меня на автомате отключает

Who understands nodejs and mysql? I just need to understand how, for example, to disconnect correctly, so that there is always only 1 connection, otherwise I start connecting there in dozens and it automatically disconnects me


и похожая проблема с таймаутом, изза некоретности скрипта слишком долго висит в памяти - то это уже другая ситуацаия, тут бы решить с подключеними к Mysql

Coin Marketplace

STEEM 0.09
TRX 0.30
JST 0.034
BTC 115558.98
ETH 4216.46
USDT 1.00
SBD 0.62