Development of automation for checking uniqueness in STEEMIT. Part 2. Heroku & Nodejs & ClearDB Mysql
Итак, продолжаем.
В этом посте я полностью создам и разверну на 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
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
