如何在connect-pg-simple中指定连接字符串?

Pte*_*tyl 2 node.js express express-session

https://github.com/voxpelli/node-connect-pg-simple上的简单示例 显示:

var session = require('express-session');

app.use(session({
  store: new (require('connect-pg-simple')(session))(),
  secret: process.env.FOO_COOKIE_SECRET,
  resave: false,
  cookie: { maxAge: 30 * 24 * 60 * 60 * 1000 } // 30 days
}));
Run Code Online (Sandbox Code Playgroud)

但当我尝试时,节点抱怨:

throw new Error('没有向 connect-pg-simple 提供数据库连接详细信息');

如何指定连接字符串?

小智 6

    // I was stuck with the same proble and solved it

    // 1-) Connection details
    const conObject = {
      user: 'mehmood',
      password: 'mehmood',
      host: 'localhost',// or whatever it may be
      port: 5432,
      database: 'test_db'
    };

    // 2-) Create an instance of connect-pg-simple and pass it session
    const pgSession = require('connect-pg-simple')(session);

    // 3-) Create a config option for store
    const pgStoreConfig = {
      pgPromise: require('pg-promise')({ promiseLib: require('bluebird') })({ 
                         conObject }), // user either this
      //conString: 'postgres://mehmood:mehmood@localhost:5432/test_db', // or this
      // conObject: conObject,// or this,
      // pool: new (require('pg').Pool({ /* pool options here*/}))// or this

    }
   // 4-) use the store configuration to pgSession instance
    app.use(session({
      store: new pgSession(pgStoreConfig),
      secret: 'jW8aor76jpPX', // session secret
      resave: true,
      saveUninitialized: true,
      cookie: { maxAge: 30 * 24 * 60 * 60 * 1000 } // 30 days 
    }));


  // Share improve this answer
Run Code Online (Sandbox Code Playgroud)