Node.js 快速会话的使用导致了一个需要中间件功能的问题

Node.js 快速会话的使用导致了一个需要中间件功能的问题,node.js,express,express-session,Node.js,Express,Express Session,我试图在一个小型测试网站上实现sessions和passport.js,以了解如何使用用户身份验证 var express = require("express"); var expressSession = require("express-sessions"); var mongoose = require("mongoose"); var passport = require("passport"); var bodyParser = require("body-parser"); var

我试图在一个小型测试网站上实现sessions和passport.js,以了解如何使用用户身份验证

var express = require("express");
var expressSession = require("express-sessions");
var mongoose = require("mongoose");
var passport = require("passport");
var bodyParser = require("body-parser");
var LocalStrategy = require("passport-local");
var passportLocalMongoose = require("passport-local-mongoose");
var User = require("./models/user");
var app = express();

mongoose.connect("mongodb://localhost/authDemoApp");
app.use(bodyParser.urlencoded({
extended: true}));
app.set("view engine", "ejs");

app.use(expressSession({
secret: "This is one hell of a secret",
resave: false,
saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

app.listen(3000, function () {
console.log("Its running!!!");
});
我得到的错误是:

throw new TypeError('app.use() requires a middleware function')
^
TypeError: app.use() requires a middleware function
我在
应用程序中添加了回拨功能。使用(expressSession…
使其:

app.use(function(err){
if (err){
console.log(err);
}else {
expressSession(...
}
});
err
值返回时带有:

IncomingMessage {
 _readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: null,
pipesCount: 0,
等等

我的问题是中间件功能,以及如何将其添加到
应用程序。使用(expressSession等…

模块是,但您的require语句正在加载
ExpressSessions

更正此错误后,程序将运行

var express = require("express");
var expressSession = require("express-session");
var mongoose = require("mongoose");
var passport = require("passport");
var bodyParser = require("body-parser");
var app = express();

mongoose.connect("mongodb://localhost/authDemoApp");
app.use(bodyParser.urlencoded({
  extended: true
}));
app.set("view engine", "ejs");

app.use(expressSession({
  secret: "This is one hell of a secret",
  resave: false,
  saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());

app.listen(3000, function () {
  console.log("Its running!!!");
});
甚至还有一个Github问题。

模块是,但您的require语句正在加载
快速会话

更正此错误后,程序将运行

var express = require("express");
var expressSession = require("express-session");
var mongoose = require("mongoose");
var passport = require("passport");
var bodyParser = require("body-parser");
var app = express();

mongoose.connect("mongodb://localhost/authDemoApp");
app.use(bodyParser.urlencoded({
  extended: true
}));
app.set("view engine", "ejs");

app.use(expressSession({
  secret: "This is one hell of a secret",
  resave: false,
  saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());

app.listen(3000, function () {
  console.log("Its running!!!");
});

甚至还有一个Github问题。

app.use接受一个回调,它将
req
res
next
作为参数。@DakshMiglani我也需要类似
app.use(函数(req,res,next){expressSesions({etc…})的东西)
?首先,让我们确定您正试图做什么,为什么不直接像
app那样使用它。use(expressSession(args))
app.use接受一个回调,它有
req
res
next
作为参数。@DakshMiglani我也需要类似
app.use的东西。use(function(function(req,res,next){expresssessions){({etc…}});
?首先,让我们确定您正试图做什么,为什么不直接像
app.use(expressSession(args))那样使用它呢
当我更改它时,我发现
找不到模块'express session'
。除此之外,一切都使用了
express sessions
的名称。请执行
npm install express session
并重新运行我刚刚安装的程序
npm install express session
,它起作用了。谢谢你,我一定完成了
npm install express会话
。当我更改它时,我发现
找不到模块“express session”
。除此之外,所有内容都使用了
express sessions
的名称。请执行
npm install express session
并重新运行我刚刚安装的程序
npm install express session
,它起了作用。谢谢你,我一定完成了de>npm安装快速会话