标签:持久 col err parser false star basedir inf 图片
一、使用mongoose链接数据库
‘use strict‘; const mongoose = require(‘mongoose‘); const config = require(‘config-lite‘)({ filename: ‘default‘, config_basedir: __dirname, config_dir: ‘config‘ }); const chalk = require(‘chalk‘); mongoose.connect(config.url, { dbName: config.db, useNewUrlParser: true, autoIndex: false }); const connect = mongoose.connection; connect.once(‘open‘, () => { console.log( chalk.green(‘connect db success!‘) ); }) connect.on(‘error‘, function (error) { console.error( chalk.red(‘Error in MongoDb connection: ‘ + error) ); mongoose.disconnect(); }); connect.on(‘close‘, function () { console.log( chalk.red(‘the db is disconnect ,reconnect...‘) ); mongoose.connect(config.url, { server: { autoReconnect: true } }); }); module.exports = connect;
二、新建一个store.js文件
const { Store } = require(‘koa-session2‘); module.exports = class extends Store { constructor(con) { super(); this.collection = con.collection(‘sessions‘); console.log("session start "); } async get(sid) { return await this.collection.findOne({ sid }); } async set(session, opts) { try { if (!opts.sid) { opts.sid = this.getID(24); } await this.collection.findOneAndUpdate({ sid: opts.sid }, { $set: session }, { upsert: true }); } catch (error) { console.log("error", error); } return opts.sid; } async destory(sid) { await this.collection.findAndModify({ sid }, [], {}, { removed: true }); } }
三、在app.js中
const session = require("koa-session2"); const sessionStore = require(‘./middlewares/seesionStore/store‘); app.use(session({ key: config.session.key, maxAge: config.session.maxAge, domain: config.session.domain, store: new sessionStore(connect) }));
标签:持久 col err parser false star basedir inf 图片
原文地址:https://www.cnblogs.com/xiaosongJiang/p/10092376.html