Closed ekawibisono closed 1 year ago
Hello, I want to ask, I'm getting an error while running mongodb for telegram bot. the error is Error connecting to MongoDB: TypeError: session is not a constructor. Here I show the code file database.js
const connectToDatabase = async () => { try { const uri = process.env.MONGODB_URI; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); await client.connect(); console.log('Connected to MongoDB successfully'); const db = client.db(); const sessions = new session(db, { collectionName: 'session', sessionName: 'telegrafSessions' }); return { db, sessions }; } catch (error) { console.error('Error connecting to MongoDB:', error); throw error; } };
The modules that I installed on database.js
const { MongoClient } = require('mongodb'); const { session } = require('telegraf-session-mongodb');
Here is the index.js file for connecting to the database.js file
const { Telegraf, Markup } = require('telegraf'); const { connectToDatabase, saveUserSession, saveUserLog } = require('./src/database'); // Connect database connectToDatabase() .then(({ db, sessions }) => { // Middleware session user bot.use(sessions.middleware()); bot.use(async (ctx, next) => { ctx.session.db = db; // insert object db session await next(); }); // Middleware save user telegram bot.use((ctx, next) => { saveUserSession(db, ctx.session) .then(() => next()) .catch((error) => { console.error('Error saving user session:', error); ctx.reply('Oops! Something went wrong.'); }); }); // Middleware save log user telegram bot.use((ctx, next) => { const log = { session_id: ctx.session.session_id, user_id: ctx.from.id, timestamp: new Date(), message: ctx.message.text }; saveUserLog(db, log); return next(); });
Please help to fix error this. Thanks
Hello, I want to ask, I'm getting an error while running mongodb for telegram bot. the error is Error connecting to MongoDB: TypeError: session is not a constructor. Here I show the code file database.js
The modules that I installed on database.js
Here is the index.js file for connecting to the database.js file
Please help to fix error this. Thanks