Sto cercando di ottenere sessioni espresse per lavorare con postgres. Dopo un paio d'ore di debug, ho risolto tutti i problemi tranne uno. Tutto funziona ma seguente:Sequelize e express-session model
Se corro questa query all'interno pgAdmin mie sessioni di funzionare correttamente
CREATE TABLE "sessions" (
"sid" varchar NOT NULL COLLATE "default",
"sess" json NOT NULL,
"expire" timestamp(6) NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE "sessions" ADD CONSTRAINT "session_pkey" PRIMARY KEY ("sid")
NOT DEFERRABLE INITIALLY IMMEDIATE;
Se creo modello con sequelize allora non salva le sessioni. Sono certo ed è ovvio che mi mancano alcune parti nella mia definizione del modello e apprezzerei qualsiasi input.
var Sessions = database.define('sessions', {
sid: {
type: Sequelize.STRING,
primaryKey: true
},
expire: {
type: Sequelize.DATE,
allowNull: true
},
sess: Sequelize.JSON
});
return Sessions;
resto del codice lavorare con questo
var pgSession = require('connect-pg-simple')(expressSession),
sessionSettings = {
store: new pgSession ({
conString: 'postgres://' + dbConfig.user +':' + dbConfig.password+ '@' + dbConfig.host+ ':5432/' + dbConfig.database,
tableName : 'sessions'
}),
secret: 'whatevergoeshere',
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 7*24*60*60*1000
}
};
app.use(expressSession(sessionSettings));
non ho idea di come includere le parti mancanti e la documentazione sequelize è sia per brevi sul tema, o non ho avuto abbastanza sonno
Il resto del codice è disponibile su richiesta, ma è piuttosto certo che non abbia alcun effetto in quanto se non imposto la sincronizzazione con il modello sequelize e l'utilizzo della query, tutto funziona.
Inoltre, ecco come si guarda attraverso pgAdmin, quello superiore è creato con query in pgAdmin, quello in basso è stato creato da sequelize
Perché non basta usare [connect-session sequelize] (https://github.com/mweibel/connect-session-sequelize)? –
Ho aggiornato la mia domanda per riflettere il tuo commento –
Aggiornato con codice sorgente su un altro progetto in cui ora ho lo stesso problema. –