[英]Connecting Node.js to postgres on apache server in vagrant
您好,各位编码员。 我正在为Web应用程序重建整个后端,并使用Typescript从php后端切换到node.js。 由于我的旧数据库结构已足够,因此我将重用所有旧的sql文件。
我正在使用ansible脚本通过apache服务器上的vagrant启动节点webapp。 然后,我手动通过SSH进入虚拟机并执行“ npm start”启动我的Web应用程序。 这应该在localhost:3000上启动我的应用程序,并仅显示一个简单的“ Hello world”文本,以确认该应用程序已连接到postgres并正常运行。
我真的是节点和javascript / typescript的新手,所以如果我问一些愚蠢的问题,请提前抱歉。
而不是预期的行为,我得到了“无法修剪会话:关系”会话”不存在。
我从节点应用程序到postgres的连接看起来像这样:
const app = express();
const session = require ("express-session");
const pg = require ("pg");
const Pool = require("pg-pool");
// Create a pool once per process and reuse it
const pgPool = new Pool ({
host: localhost
port: 5432,
user: "postgres",
password: "postgres",
database: "test,
});
app.use(session({
store: new(require("connect-pg-pool")(session))({
pool: pgPool
}),
secret: SESSION_SECRET,
cookie: { maxAge: 30 * 24 * 60 * 60 * 1000 }, // 30 days
resave: true,
autoreconnect: true,
saveUninitialized: true,
}));
app.set("port", 3000);
app.set("views", path.join(__dirname, "../views"));
app.set("view engine", "pug");
app.get("/", homeController.index);
我的server.ts文件是我的应用程序侦听端口的位置,如下所示:
const server = app.listen(app.get("port"), () => {
console.log(
" App is running at http://localhost:%d in %s mode",
app.get("port"),
app.get("env")
);
console.log(" Press CTRL-C to stop\n");
});
在项目文件夹中运行“ psql <node_modules / connect-pg-simple / table.sql”,这将创建会话表,express-session将其用作中间件。 我只是忘记这样做了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.