繁体   English   中英

在Vagrant中将Node.js连接到Apache服务器上的Postgres

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM