前端开发将会话信息存储到mongodb中遇到的种种问题

网站切图属于前端开发吗
前端怎么能快速开发网站
网站前端开发和后台开发

把会话信息存储在数据库中,便于持久维护。为了使用这一功能,需要获得一个叫做 connect-mongo 的模块,在 package.json 中添加一行代码:
json 代码片段

{
    “name”: “microblog”,
    “version”: “0.0.1”,
    “private”: true,
    “dependencies”: {
        “express”: “2.5.8”,
        “ejs”: “>= 0.0.1”,
        “connect-mongo”: “>= 0.1.7”,
        “mongodb”: “>= 0.9.9”
    }
}
 运行  npm install 获得模块。然后打开 app.js,添加以下内容:
 **javascript 代码片段**
var MongoStore = require(‘connect-mongo’)
var settings = require(‘../settings’)
app.configure(function() {
    app.set(‘views’, __dirname + ‘/views’)
    app.set(‘view engine’, ‘ejs’)
    app.use(express.bodyParser())
    app.use(express.methodOverride())
    app.use(express.cookieParser())
    app.use(
        express.session({
            secret: settings.cookieSecret,
            store: new MongoStore({
                db: settings.db,
            }),
        }),
    )
    app.use(app.router)
    app.use(express.static(__dirname + ‘/public’))
})
  其中 express.cookieParser()  是 Cookie 解析的中间件。 express.session()  则提供会话支持,设置它的  store  参数为  MongoStore  实例,把会话信息存储到数据库中,以避免丢失。

  OK,运行,愉快地发现,报错了!
  错误信息:Error: Most middleware (like session) is no longer bundled with Express and must be installed separately.
  原来,在express 4.0之前的版本,像session之类的中间件是伴随express自动安装的,4.0之后的需要另行安装express-session模块。
  用的时候不再使用express.session(),而是直接使用session()。
  于是,在package.json文件中添加express-session模块的相关信息,然后npm install安装该模块。
  代码如下:
  **javascript 代码片段**
var session = require(‘express-session’)
var MongoStore = require(‘connect-mongo’)(session)
var settings = require(‘../settings’)
app.use(
    session({
        secret: settings.cookieSecret,
        store: new MongoStore({
            db: settings.db,
        }),
    }),
)
  解决参考:**http://winfan.net/662.html**

  OK,再次运行,这次应该没问题吧,但是只能呵呵了。。。再次报错,,
  错误信息如下:
  **javascript 代码片段**
\node_modules\connect-mongo\src\index.js: 100
thrownewError(‘Connection strategy not found’);
    ^
        Error: Connection strategy not found
            at MongoStore (E:\chenjsh36\mydevelop\node\newexpress_6\node_modules\connect-mongo\src\index.js:100:23)
            at Object.<anonymous> (server.js:36:9)
                at Module._compile (module.js:435:26)
                at Object.Module._extensions..js (module.js:442:10)
                at Module.load (module.js:356:32)
                at Function.Module._load (module.js:311:12)
                at Function.Module.runMain (module.js:467:10)
                at startup (node.js:134:18)
                at node.js:961:3
 最后参考:https://cnodejs.org/topic/567a1120222744630726b244
 把其中代码改成如下:
 **javascript 代码片段**
app.use(
    session({
        secret: settings.cookieSecret,
        /*key: settings.db,
cookie: {maxAge: 1000*60*60*24*30},*/
        store: new MongoStore({
            /*db: settings.db*/
            url: ‘mongodb://localhost/microblog’,
        }),
    }),
)

 

需要前端开发的网站
前端开发源码网站
前端开发素材网站
赞(0)
前端开发者 » 前端开发将会话信息存储到mongodb中遇到的种种问题
64K

评论 抢沙发

评论前必须登录!