📅  最后修改于: 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
对象的键:
string
:SQL Server的位置,可能是一台计算机的名称、一个网络地址或一个IP地址。string
:包含表的数据库的名称。string
:连接到服务器的重用登录的名称。string
:与登录相关的密码。number
:作为连接的一部分,TCP端口。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
应用程序,它都是个很好的选择。通过这个介绍,您应该了解了如何初始化、使用和选项配置。