请教 Express 4 中如何使用connect-mongo
发布于 10个月前 作者 jin5354 1938 次浏览

https://github.com/nswbmw/N-blog/wiki/%E7%AC%AC1%E7%AB%A0–%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E5%8D%9A%E5%AE%A2

正在跟随上面的教程一步一步做,在会话支持那一节中安装 connect-mongo 后,添加:

var MongoStore = require('connect-mongo')(express);
var settings = require('./settings');
和
app.use(express.cookieParser());
app.use(express.session({
 // ......
  })
}));

之后运行报错:

Error: Most middleware (like session) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware. 

求问在 Express 4 中该如何处理这个中间件

9 回复

express 4 跟之前很不同。 比如 express.session 和 express.cookieParser 都已经不存在了。 express 和 中间件已经剥离了,除了 express.static。

跟mongodb无关 去抓connect 然后把epxress.XXX 改成connect.XXX

我改成了这样: var MongoStore = require(‘connect-mongo’)(connect); var settings = require(‘./settings’); var connect = require(‘connect’);

app.use(cookieParser()); app.use(connect.session({ //… }));

我把connect-mongo.js也换成了git上的兼容4.x的版本, 也用npm安装了connect,运行报错: var Store = connect.Store || connect.session.Store; ^ TypeError: Cannot read property ‘Store’ of undefined

恩,读了一下各个的说明,按照新的规则试着改了改,结果还是出错,有些头大,代码在二楼

var connect = require(‘connect’); var session = require(‘express-session’); var MongoStore = require(‘connect-mongo’)(connect);

app.use(session({ secret: settings.cookieSecret, store: new MongoStore({ db: settings.db }) }));

我这样子好像就OK了。

谢谢,可以了!令我奇怪的是我之前也有尝试过使用express-session,但是依旧出错。 看了你的回答之后我调整了一下代码顺序结果成功了,应该是我的代码顺序不对造成的。

朋友,您好,可以一同交流一下吗?您的qq是多少呢?

我也在写这个例子,感觉书中的代码都过时了,这个头大,希望可以交流一下,指点一下小弟

@jin5354 我也遇到这样的问题,你是咋样解决了的?求指教,我也在看这本书,能不能交流一下

回到顶部