在 vagrant 中将 Node.js 连接到 apache 服务器上的 postgres
Posted
技术标签:
【中文标题】在 vagrant 中将 Node.js 连接到 apache 服务器上的 postgres【英文标题】:Connecting Node.js to postgres on apache server in vagrant 【发布时间】:2018-12-10 11:55:27 【问题描述】:各位程序员,您好。 我正在为 Web 应用程序重建整个后端,并使用 typescript 从 php 后端切换到 node.js。我将重用我所有的旧 sql 文件,因为我的旧数据库结构就足够了。
我正在使用 ansible 脚本在 apache 服务器上通过 vagrant 启动我的节点 webapp。然后我手动 SSH 进入虚拟机并执行“npm start”来启动我的 webapp。这应该在 localhost:3000 启动我的应用程序,并只显示一个简单的“Hello world”文本,以确认应用程序已连接到 postgres 并正确运行。
我对 node 和 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 好酷………… 请不要发送带有标签的垃圾邮件。这个问题与 Ansible 或 Vagrant 无关。 【参考方案1】:在项目文件夹中运行“psql
【讨论】:
以上是关于在 vagrant 中将 Node.js 连接到 apache 服务器上的 postgres的主要内容,如果未能解决你的问题,请参考以下文章
从 Heroku 上的 Node.js 连接到 CloudSQL
第一次使用 `homestead ssh` 时连接到 vagrant 是不是有默认密码?
Node.js - 在 Heroku 上使用 MongoHQ 连接到 MongoDB
在 javascript/node.js 中连接到 Gmail IMAP API