根据推酷的一篇文章学习express,途中遇到下列的问题:
文章地址:http://www.tuicool.com/articles/jueARjE#c-25892
- 运行mongodb
E:\Program Files\MongoDB\Server\3.4\bin>mongod.exe --dbpath ../blog/
- 依赖模块更新
在不知道最新版本是多少的情况下可以用“*”或者“latest”代替版本号
还有个插件npm-check(还没用过,查到的)
$ npm install -g npm-check //安装
$ npm-check -u //检查版本
Error: Connection strategy not found
connect-mongo版本问题
new MongoStore: { url: ‘your_db_url’}
https://github.com/kcbanner/connect-mongo#create-a-new-connection-from-a-mongodb-connection-string启动报错express-session
Sun, 04 Jun 2017 13:56:30 GMT express-session deprecated undefined resave option; provide resave option at app.js:56:9
Sun, 04 Jun 2017 13:56:30 GMT express-session deprecated undefined saveUninitialized option; provide saveUninitialized option at app.js:56:9
解决:
添加前两行配置
app.use(session({
resave:false,//添加这行
saveUninitialized: true,//添加这行
//防止篡改 cookie
secret: settings.cookieSecret,
//key 的值为 cookie 的名字
key: settings.db,
//设置 cookie 的 maxAge 值设定 cookie 的生存期 30天
cookie: {maxAge: 100*60*60*24*30},
// store 参数为 MongoStore 实例 把会话信息存储到数据库中,以避免丢失
store: new MongoStore({
/*db: settings.db,
host: settings.host,
port: settings.port,*/
url:'mongodb://localhost/'+settings.db
})
}));
- Error: req.flash() requires sessions
var session = require('express-session');
var flash = require('connect-flash');//上面要引用这个插件
var routes = require('./routes/index');
app.use(session({...}));//flash依赖session模块
app.use(flash());//这句话卸载session后面
routes(app);//路由文件写在最后