npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

connect-session-knex

v4.0.0

Published

A knex.js session store for Express and Connect

Downloads

358,048

Readme

Connect Session Knex

NPM Version NPM Downloads Node.js Version NPM

connect-session-knex is an express-session store backed by PostgreSQL, MySQL, MariaDB, MSSQL, Oracle or SQLite3, via the knex.js library.

Installation

$ npm install connect-session-knex

History

See Changelog.md

Usage

Example application using the defaults

Example application with PostgreSQL

With Express 3 or Connect

Options

  • tablename='sessions' Tablename to use. Defaults to 'sessions'.
  • sidfieldname='sid' Field name in table to use for storing session ids. Defaults to 'sid'.
  • knex knex instance to use. Defaults to a new knex instance, using sqlite3 with a file named 'connect-session-knex.sqlite'
  • createtable if the table for sessions should be created automatically or not.
  • clearInterval milliseconds between clearing expired sessions. Defaults to 60000.
  • disableDbCleanup disables the automatic clearing of expired sessions. Defaults to false.

If the table does not exist in the schema, this module will attempt to create it unless the 'createtable' option is false.

If a knex instance is not provided, this module will attempt to create a sqlite3 database, with a file named 'connect-session-knex.sqlite', in the working directory of the process.

Schema

PostgreSQL or SQLite

Table Name "sessions"

| Column | Type | Modifiers | Storage | |---------|:------------------------:|:---------:|:--------:| | sid | character varying(255) | not null | extended | | sess | json | not null | extended | | expired | timestamp with time zone | not null | plain |

Indexes:

    "sessions_pkey" PRIMARY KEY, btree (sid)  
    "sessions_expired_index" btree (expired)

MySQL

Table Name sessions.

| Column | Type | Modifiers | |---------|:------------------------:|:------------:| | sid | VARCHAR(255) | NOT NULL, PK | | sess | JSON | NOT NULL | | expired | DATETIME | NOT NULL |

Command to manually create table:

CREATE TABLE `sessions` (
  `sid` VARCHAR(255) NOT NULL,
  `sess` JSON NOT NULL,
  `expired` DATETIME NOT NULL,
  PRIMARY KEY (`sid`));

Benchmarks

https://github.com/gx0r/express-session-benchmarks

Testing

Install Postgresql

Instructions for Ubuntu after intalling the db:

sudo -u postgres psql
CREATE DATABASE travis_ci_test OWNER postgres;
GRANT all privileges ON DATABASE travis_ci_test TO postgres;
ALTER USER postgres WITH PASSWORD 'postgres';
\q

Install Mysql

Instructions for Ubuntu after installing the db:

sudo mysql -u root
create user 'travis' identified by 'travis';
ALTER USER 'travis'@'localhost' IDENTIFIED BY 'travis';
create database travis_ci_test;
grant all on travis_ci_test.* to 'travis';
\q
sudo service mysql restart

Make sure both the MySQL and Postgres services are running

npm run test