lamix 4.2.11 → 4.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -87,7 +87,7 @@ npm i lamix
87
87
  2. Install dependencies (if any).
88
88
  > This tool uses `mysql2`,`pg`,`sqlite3` driver, so make sure you install your prefered driver:
89
89
  DATABASE CONNECTION IN `.env`FILE
90
- Configure DB via environment variables: `'DB_CONNECTION=mysql',DB_HOST=your db hast`, `DB_USER=your db user`, `DB_PASS=your db password`, `DB_NAME=your db name`, `DB_PORT=your db port`, `DB_CONNECTION_LIMIT=100`.
90
+ Configure DB via environment variables: `'DB_CONNECTION=mysql',DB_HOST=your db hast`, `DB_USER=your db user`, `DB_PASS=your db password`, `DB_NAME=your db name`, `DB_PORT=your db port`, `DB_CONNECTION_LIMIT=10`.
91
91
 
92
92
  ## Quick start
93
93
  for database connection use any driver of your choice eg
@@ -271,7 +271,7 @@ class User extends BaseModel {
271
271
  }
272
272
 
273
273
 
274
- // Many-to-many: User ↔ Role via pivot user_roles (user_id, role_id)
274
+ # Many-to-many: User ↔ Role via pivot user_roles (user_id, role_id)
275
275
  roles() {
276
276
  const Role = require('./Role');
277
277
  return this.belongsToMany(
@@ -282,9 +282,62 @@ class User extends BaseModel {
282
282
  ).onDelete('detach');
283
283
  }
284
284
 
285
- // One-to-many: User -> Post
285
+ # One-to-many: User -> Post
286
286
  posts() {
287
287
  const Post = require('./Post');
288
288
  return this.hasMany(Post', 'user_id', 'id').onDelete('cascade');
289
289
  }
290
+
291
+ # Create sessions Table MySQL/Postgres sql
292
+ CREATE TABLE sessions (
293
+ sid VARCHAR(255) PRIMARY KEY,
294
+ data TEXT NOT NULL,
295
+ expires BIGINT NOT NULL
296
+ );
297
+ CREATE INDEX idx_sessions_expires ON sessions (expires);
298
+
299
+ # Create sessions Table sqlite sql
300
+ CREATE TABLE sessions (
301
+ sid TEXT PRIMARY KEY,
302
+ data TEXT NOT NULL,
303
+ expires INTEGER NOT NULL
304
+ );
305
+ CREATE INDEX idx_sessions_expires ON sessions (expires);
306
+
307
+ # Session setup
308
+ const express = require('express');
309
+ const session = require('express-session');
310
+ const { DB, LamixSessionStore } = require('lamix');
311
+
312
+ DB.initFromEnv();
313
+
314
+ (async () => {
315
+ await DB.connect();
316
+ })();
317
+
318
+ const app = express();
319
+
320
+ app.use(
321
+ session({
322
+ name: 'lamix.sid',
323
+ secret: process.env.SESSION_SECRET || 'dev-secret',
324
+ resave: false,
325
+ saveUninitialized: false,
326
+ store: new LamixSessionStore({
327
+ ttl: 60 * 60 * 24, // 1 day
328
+ }),
329
+ cookie: {
330
+ httpOnly: true,
331
+ secure: false, // true behind HTTPS
332
+ maxAge: 1000 * 60 * 60 * 24,
333
+ },
334
+ })
335
+ );
336
+
337
+ app.get('/', (req, res) => {
338
+ req.session.views = (req.session.views || 0) + 1;
339
+ res.json({ views: req.session.views });
340
+ });
341
+
342
+ app.listen(3000);
290
343
  }