Codeai / backend /db.js
zhlajiex's picture
fix: resolve CastError by making ApiKey model NeDB-compatible
777b311
const Datastore = require('@seald-io/nedb');
const path = require('path');
const dbDir = path.join(__dirname, 'data');
const fs = require('fs');
if (!fs.existsSync(dbDir)) fs.mkdirSync(dbDir, { recursive: true });
const db = {
users: new Datastore({ filename: path.join(dbDir, 'users.db'), autoload: true }),
sessions: new Datastore({ filename: path.join(dbDir, 'sessions.db'), autoload: true }),
messages: new Datastore({ filename: path.join(dbDir, 'messages.db'), autoload: true }),
announcements: new Datastore({ filename: path.join(dbDir, 'announcements.db'), autoload: true }),
apikeys: new Datastore({ filename: path.join(dbDir, 'apikeys.db'), autoload: true })
};
// Ensure indices
db.users.ensureIndex({ fieldName: 'email', unique: true });
db.users.ensureIndex({ fieldName: 'githubId', unique: true, sparse: true });
db.apikeys.ensureIndex({ fieldName: 'key', unique: true });
const connectDB = async () => {
console.log('Neural Archive: Local NeDB Interface ACTIVE ✅');
};
module.exports = connectDB;
module.exports.db = db;