Делаю бота для телеги на node js (node-telegram-bot-api), хочу сделать регистрацию. Когда бот отправляет "Введите имя", бот ждет когда он введет и запишет в базу. Весь инет перерыл, не могу найти. Нуждаюсь в помощи! Заранее спасибо
const sqlite3 = require('sqlite3').verbose(); let db = new sqlite3.Database('./users.db', sqlite3.OPEN_READWRITE, (err) => { if (err) { console.error(err.message); } console.log('Connected to the database.'); }); function adduser(name, VK, table) { db.run("insert into "+ table +" (name, user_id) values ('" + name + "','" + VK + "')"); } if (msg.message.text.startsWith('/reg')) { let userid = msg.message.text let getuserid = userid.match(/\/reg id(\d+) (.+)/); let sql = "SELECT name, user_id from user_info"; db.get(sql, (err, rows) => { if (rows === null || rows === undefined) { messagesend('error'); } else if (rows != null && err === null && getuserid[1] != rows.user_id) { adduser(getuserid[2], getuserid[1], 'user_info') messagesend('uspex add: \n id: ' + getuserid[1] + ' | name: ' + getuserid[2]) } else if (rows.user_id.toString() === getuserid[1].toString()) { if (rows.user_id.toString() === getuserid[1].toString()) { if (rows.user_id.toString() === getuserid[1].toString()) { messagesend('чел ты уже в базе') } } } }) } JavaScript const sqlite3 = require('sqlite3').verbose(); let db = new sqlite3.Database('./users.db', sqlite3.OPEN_READWRITE, (err) => { if (err) { console.error(err.message); } console.log('Connected to the database.'); }); function adduser(name, VK, table) { db.run("insert into "+ table +" (name, user_id) values ('" + name + "','" + VK + "')"); } if (msg.message.text.startsWith('/reg')) { let userid = msg.message.text let getuserid = userid.match(/\/reg id(\d+) (.+)/); let sql = "SELECT name, user_id from user_info"; db.get(sql, (err, rows) => { if (rows === null || rows === undefined) { messagesend('error'); } else if (rows != null && err === null && getuserid[1] != rows.user_id) { adduser(getuserid[2], getuserid[1], 'user_info') messagesend('uspex add: \n id: ' + getuserid[1] + ' | name: ' + getuserid[2]) } else if (rows.user_id.toString() === getuserid[1].toString()) { if (rows.user_id.toString() === getuserid[1].toString()) { if (rows.user_id.toString() === getuserid[1].toString()) { messagesend('чел ты уже в базе') } } } }) } крч у меня это в примере VK, переделай под TG + используй библиотеку SQLtie3 доки в инете
vcentrevkusa, let bots = [] // отправил сообщение - пока ждешь ответ от пользователя добавляешь его в массив bots.push(msg.from.id) bot.on('message', (msg) => { console.log(msg) let owner_message = bots.indexOf(msg.from.id) if (owner_message !== -1) { // можешь добавить еще какое-то свое условие проверки хз let index = bots.indexOf(query.from.id) if (index !== -1) { bots.splice(index, 1) } } }); JavaScript let bots = [] // отправил сообщение - пока ждешь ответ от пользователя добавляешь его в массив bots.push(msg.from.id) bot.on('message', (msg) => { console.log(msg) let owner_message = bots.indexOf(msg.from.id) if (owner_message !== -1) { // можешь добавить еще какое-то свое условие проверки хз let index = bots.indexOf(query.from.id) if (index !== -1) { bots.splice(index, 1) } } });