Node.js 快速会话的使用导致了一个需要中间件功能的问题
我试图在一个小型测试网站上实现sessions和passport.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
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安装快速会话
。