Я разрабатываю API, который также служит в качестве бота для телеграмм. Мне нужно получить все telegram-user
, чтобы предупредить их.
const TelegramBot = require('node-telegram-bot-api');
const express = require('express');
const router = express.Router();
const config = require('../config/production.json');
const TOKEN = config.bot.token;
const bot = new TelegramBot(TOKEN);
const app = require('./app.js');
const users = app.service('telegram-user');
router.post(`/${TOKEN}`, (req, res) => {
bot.processUpdate(req.body);
res.sendStatus(200);
});
bot.onText(/\/registrar/, async function onStartText(msg) {
users.create({
id: msg.chat.id,
first_name: msg.chat.first_name
}).catch(() => {
bot.sendMessage(msg.chat.id, 'Usuario ya registrado');
});
bot.sendMessage(msg.chat.id, 'Registrado correctamente');
});
Я пробовал несколько способов заставить const работать 'пользователей', но либо я получаю undefined, либо app.service не является функцией.
Я также пытался изменить require('.app.js')
с
const feathers = require('@feathersjs/feathers');
const express = require('@feathersjs/express');
const app = express(feathers());
если я запускаю этот точный код в app.js, он работает:
const users = app.service('telegram-user');
users.create({
id: msg.chat.id,
first_name: msg.chat.first_name
})
Я использую перо с Sequelize и Postgresql
UPDATE:
Если я помещаю require('.app.js')
внутри функции, она работает, но если я помещаю ее в начале ошибки, я получаю "app.service не функция".
Это работает:
bot.onText(/\/registrar/, async function onStartText(msg) {
const app = require('./app.js'); //require in here
const users = app.service('telegram-user');
users.create({
id: msg.chat.id,
first_name: msg.chat.first_name
}).catch(() => {
bot.sendMessage(msg.chat.id, 'Usuario ya registrado');
});
bot.sendMessage(msg.chat.id, 'Registrado correctamente');
});
Как установить app
в качестве постоянной переменной в файле?