Ошибка - expressSessionMiddleware не является функцией - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь использовать express-socket.io-session для сокетов с пользовательскими сессиями, но я продолжаю получать эту ошибку, когда пытаюсь добавить промежуточное программное обеспечение.Вот мой код:

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
    }));

}

Все параметры, переданные в основную функцию, показались мне, когда я их использовал console.log, так что я не думаю, что это так.Любая помощь в том, почему эта ошибка происходит, будет принята с благодарностью.Спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Вы также должны использовать промежуточное программное обеспечение session в экспресс-приложении, после чего вы можете использовать промежуточное программное обеспечение 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

...