📜  mssql-session-store (1)

📅  最后修改于: 2023-12-03 15:17:44.698000             🧑  作者: Mango

mssql-session-store: 将会话存储在MSSQL数据库中

node.js模块允许将Session(会话)存储在MSSQL(Microsoft SQL Server)数据库中。它非常适用于任何使用SQL Server作为数据库的node.js应用程序,从而消除了必须使用其他服务(如Redis)来存储会话的需求。

安装

使用npm安装mssql-session-store模块:

npm install mssql-session-store
用法
初始化
const session = require('express-session');
const MSSQLStore = require('mssql-session-store')(session);

const options = {
  // IDbConfig必需对象。
  IDbConfig: {
    server: 'localhost',
    database: 'mydb',
    port: 1433,
    user: 'myusername',
    password: 'mypassword',
  },
  // 表的名称
  tableName: 'sessions',
  // 重置表存储的过期项
  reapInterval: 60000,
  // 是创建required tables if if don't exist
  autoReconnect: true,
};

app.use(session({
  store: new MSSQLStore(options),
  secret: 'Your secret key',
  resave: false,
  saveUninitialized: false,
  cookie: { secure: false },
}));
可选选项

MSSQLStore接受以下选项:

  • IDbConfig:必需。包含连接数据库的信息,详见下文。
  • tableName:可选。存储Session的表格的名称。默认值为sessions
  • reapInterval:可选。以毫秒为单位指定多长时间清除一次过期的Session项目。默认情况下,不会执行重刷操作。使用值0会在毎次目标检查时都执行清理。
  • autoReconnect:可选。如果在使用会话存储期间发生断开连接,是否尝试自动重新连接到数据库。默认为true
  • errorHandler:可选。指定发生错误时将调用的回调方法。默认情况下,将简单地在控制台上打印错误。
  • serializer:可选。指定一个对象,该对象具有将会话序列化为字节数组的方法,并将字节数组反序列化回会话对象的方法。默认情况下,使用内置的JSON序列化程序。
IDbConfig的必需配置项

以下是IDbConfig对象的键:

  • server:string:SQL Server的位置,可能是一台计算机的名称、一个网络地址或一个IP地址。
  • database:string:包含表的数据库的名称。
  • user:string:连接到服务器的重用登录的名称。
  • password:string:与登录相关的密码。
  • port:number:作为连接的一部分,TCP端口。
  • connectionTimeout:number:建立连接的超时时间。
使用例子
const session = require('express-session');
const MSSQLStore = require('mssql-session-store')(session);

const options = {
  IDbConfig: {
    server: 'localhost',
    database: 'mydb',
    port: 1433,
    user: 'myusername',
    password: 'mypassword',
  },
  tableName: 'sessions',
  reapInterval: 60000,
  autoReconnect: true,
};

app.use(session({
  store: new MSSQLStore(options),
  secret: 'Your secret key',
  resave: false,
  saveUninitialized: false,
  cookie: { secure: false },
}));

以上是使用mssql-session-store来将会话存储在MSSQL数据库中的介绍。这个模块是很好用的,对于任何使用SQL Server作为数据库的node.js应用程序,它都是个很好的选择。通过这个介绍,您应该了解了如何初始化、使用和选项配置。