node.js - 如何在 sequelize 连接对象中设置应用程序名称?

标签 node.js sequelize.js tedious

总结:

我想在初始化新的 sequalize 对象时更改连接字符串应用程序名称。基于 this stackoverflow question ,我设置dialectOptions的appName如下:

    let conn = new Sequelize(this.models.sequelize.config.database, this.models.sequelize.config.username,
                this.models.sequelize.config.password, {
                host: this.models.sequelize.config.host,
                dialect: this.models.sequelize.getDialect(),
                dialectOptions: {
                    appName: "userid=-2@gid=" + gid
                }
            });

问题:

当我执行类似以下代码的事务时,应用程序名称 不会传递给 SQL 服务器。当我监控 SQL 查询的执行时,下图显示 Tedious 被发送到应用程序名称。

交易代码:

    await conn.transaction(async t => {
                for(let i in this.collect){
                    let queryBuilder = this.collect[i];
                    let options = {replacements: queryBuilder.replacement, transaction: t};
                    if(queryBuilder.type === 'insert'){
                        options.type = conn.QueryTypes.INSERT;
                    }
                    let row = await conn.query(queryBuilder.query + ';select @@IDENTITY as id', options);
                    progressBar.update(parseInt(i) + 1);
                }

SQL Profiler 图片是:

enter image description here

如何正确设置应用程序名称

最佳答案

在 PostgreSQL 上,您需要像这样在 dialectOptions 对象中设置属性 application_name:

let conn = new Sequelize(this.models.sequelize.config.database, this.models.sequelize.config.username,
            this.models.sequelize.config.password, {
            host: this.models.sequelize.config.host,
            dialect: "postgres",
            dialectOptions: {
               application_name: "yourApp"
            }
        });

关于node.js - 如何在 sequelize 连接对象中设置应用程序名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56903706/

相关文章:

node.js - 操作数据对象sequelize ORM (nodejs)

node.js - Azure Web应用程序乏味

sql-server - NodeJS : How to connect to MSQL database using Windows Authentication/trustedConnection from Mac

node.js - Promise 胜过直接计算?

javascript - 计算 AJAX 下载速度

node.js - Sequelize : Update a column value on Model. 销毁()

node.js - Sequelizejs 中的索引表

node.js - 使用 sequelize 进行子查询以使用日期和时间过滤即将发生的事件

node.js - Lambda 函数无法在 S3 上创建文件

sql - 数据设置为 json with group