首页 > 解决方案 > 如何在 PostgreSQL 上通过单个连接使用多个会话?

问题描述

我正在使用带有 Sequelize 的 PostgreSQL。

我的应用程序有一个连接池。我想设置一个会话变量 ( SET session.username TO xxx),但不确定如何确保它们不会因为我共享连接而混淆。

app.use((req, res, next)=>{
  await sequelize.query(`SET session.username TO ${req.username}`); // in real code, we need to escape this
  next();
});

app.post('/create', (req, res)=>{
  const task = await Task.create({name: 'new task'});
  res.json(task);
});

我的数据库中有一个触发器,我正在尝试创建一个审计日志,因此它将当前用户添加到新创建的对象中(我不想在每条create语句中都传递它,但我想为它设置一次会话的持续时间,然后再使用它)。

提前致谢...

标签: node.jspostgresqlsequelize.js

解决方案


推荐阅读