Express Postgres 会话无法正常工作
Express Postgres Sessions not working correctly
我正在使用 express-session
并尝试使用 Postgres 作为我的会话存储:
app.use(session({
store: new (require('connect-pg-simple')(session))(),
secret: 'mysessionsecret',
resave: false,
cookie: {
maxAge: 7 * 24 * 60 * 60 * 1000
}
}));
但是当我 运行 我的服务器时,我得到
2016-05-07T14:19:05.571491+00:00 app[web.1]: error: no pg_hba.conf entry for host "my.ip.address", user "myuser", database "databasename", SSL off
我做错了什么?
在 PostgreSQL 的基于主机的身份验证文件 pg_hba.conf
中没有主机 "my.ip.address"、用户 "myuser"、数据库 "databasename" 的条目,SSL 关闭。
您可能已将 PostgreSQL 配置为仅接受来自环回地址 127.0.0.1
的连接。
见the manual for pg_hba.conf
and more generally the client authentication chapter。
好的,所以 connect-pg-simple
gets its connection info from the DATABASE_URL
environment variable by default。从您尝试连接到 Herkoku PostgreSQL 实例的评论来看,大概是来自未设置 DATABASE_URL
的 Heroku 外部。因此,您应该将 DATABASE_URL
env var 设置为适当的值,确保包含 sslmode=require
(请参阅 Heroku 文档)或将 URL 作为 connString
参数传递给 connect-pg-simple
.
试试这个:
var pgSession = require('connect-pg-simple')(session);
app.use(session({
store: new pgSession({
conString : process.env.DATABASE_URL
}),
secret: 'mysessionsecret',
resave: false,
cookie: {
maxAge: 7 * 24 * 60 * 60 * 1000
},
secure : true
}));
我正在使用 express-session
并尝试使用 Postgres 作为我的会话存储:
app.use(session({
store: new (require('connect-pg-simple')(session))(),
secret: 'mysessionsecret',
resave: false,
cookie: {
maxAge: 7 * 24 * 60 * 60 * 1000
}
}));
但是当我 运行 我的服务器时,我得到
2016-05-07T14:19:05.571491+00:00 app[web.1]: error: no pg_hba.conf entry for host "my.ip.address", user "myuser", database "databasename", SSL off
我做错了什么?
在 PostgreSQL 的基于主机的身份验证文件 pg_hba.conf
中没有主机 "my.ip.address"、用户 "myuser"、数据库 "databasename" 的条目,SSL 关闭。
您可能已将 PostgreSQL 配置为仅接受来自环回地址 127.0.0.1
的连接。
见the manual for pg_hba.conf
and more generally the client authentication chapter。
好的,所以 connect-pg-simple
gets its connection info from the DATABASE_URL
environment variable by default。从您尝试连接到 Herkoku PostgreSQL 实例的评论来看,大概是来自未设置 DATABASE_URL
的 Heroku 外部。因此,您应该将 DATABASE_URL
env var 设置为适当的值,确保包含 sslmode=require
(请参阅 Heroku 文档)或将 URL 作为 connString
参数传递给 connect-pg-simple
.
试试这个:
var pgSession = require('connect-pg-simple')(session);
app.use(session({
store: new pgSession({
conString : process.env.DATABASE_URL
}),
secret: 'mysessionsecret',
resave: false,
cookie: {
maxAge: 7 * 24 * 60 * 60 * 1000
},
secure : true
}));