node.js - 错误 - expressSessionMiddleware 不是函数
问题描述
我正在尝试将 express-socket.io-sessions 用于用户会话的套接字,但是当我尝试添加中间件时,我不断收到此错误。这是我的代码:
var express = require('express');
var socket = require('socket.io');
var sharedSession = require("express-socket.io-session");
function main(req, res, server, session) {
res.sendFile(__dirname + "/views/find.html");
var io = socket(server);
io.use(sharedSession(session, {
autoSave: true
}));
}
当我对它们进行控制台登录时,似乎传递给主函数的所有参数,所以我不认为是这样。任何有关为什么会发生此错误的帮助将不胜感激。谢谢。
解决方案
您还必须将中间件session
放入 express 应用程序中,然后才能使用sharedSession
中间件。
正确的方式
var app = require('express')(),
server = require("http").createServer(app),
io = require("socket.io")(server),
session = require("express-session")({
secret: "my-secret",
resave: true,
saveUninitialized: true
}),
sharedsession = require("express-socket.io-session");
// Attach session
app.use(session);
// Share session with io sockets
io.use(sharedsession(session));
参考官方文档 - https://www.npmjs.com/package/express-socket.io-session
推荐阅读
- c# - 复合键和 IsRequired(false)
- machine-learning - 具有可变元素计数的有序列表作为机器学习的特征
- scala - 带有种类投影仪的 Scala 中的部分应用类型 lambda
- python-3.x - 按 pandas 中每个 id 的连续天数分组
- c# - 如何使用实体框架在数据库中一次保存多个对象
- excel - 使用条件检查的 Excel 数据验证
- vba - 在宏结束时存储值用于 powerpoint
- kotlin - Kotlin mockito 参数匹配器问题
- html - 悬停最后一个孩子时嵌套的div也悬停在父级上
- android - 如何识别来自我的应用程序的 http post API 请求?