Express Session 使用导致需要中间件功能
Express Session use leads to a requires a middleware function
我正在尝试在一个小型测试网站上实现会话和 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
我在 app.use(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,
等...
我的问题是中间件功能,如何将它添加到 app.use(expressSession etc...
?
模块是 express-session
,但是你的 require 语句正在加载 express-sessions
。
更正此问题,程序运行。
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 问题。 #446 app.use() requires middleware functions
我正在尝试在一个小型测试网站上实现会话和 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
我在 app.use(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,
等...
我的问题是中间件功能,如何将它添加到 app.use(expressSession etc...
?
模块是 express-session
,但是你的 require 语句正在加载 express-sessions
。
更正此问题,程序运行。
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 问题。 #446 app.use() requires middleware functions