公司有一个老项目,后端是node8的,用的是express4.16,express-session是1.15.4。因为是内部员工微信端使用,访问量不大,所以session一直都是内存存储机制。
但是pm2日志一直有警告,意思就是应该持久化存储,不然内存溢出之类的。
所以想调整一下,改成mongodb储存,顺便也当入门下mongodb。测试环境代码用的正式环境代码,connect-mongo用的2.0.3。数据库开了一个专门用来存session的库api_test和操作账号api_user_test,权限是dbowner。
app.use(session({
...
store: new MongoStore({
url: 'mongodb://api_user_test:test@localhost:27017/?authSource=api_test'
})
但是pm2有报错,,看了下,就是数据库连接后操作的不是指定的api_test的库,而是admin库,因为没有权限所以肯定报错。主要刚入门mongodb,不知道自己代码new MongoStore的配置哪里写的不对,我用compass用同样的连接地址可以确定能登录,请大佬帮忙看看。
找到原因了,uri写错了,果然还是低级错误。