01. DADOS GERAIS
Produto: | TOTVS Logística Recintos Aduaneiros
|
---|---|
Linha de Produto: | Linha Logix |
Segmento: | Logística |
Módulo: | Serviço de autenticação OAuth2 |
Função: | Serviço de autenticação OAuth2 |
Ticket: | |
Requisito/Story/Issue (informe o requisito relacionado) : |
02. SITUAÇÃO/REQUISITO
Para atendimento da demanda de autenticação, para o produto TOTVS Recintos Aduaneiros, através do protocolo OAuth2 foi estabelecida a componentização da conexão com o banco de dados Microsoft SQL Server. Foi adotada a técnica de componentização para que a conexão seja reaproveitada em outros projetos que sejam desenvolvidos sobre Node.JS.
03. SOLUÇÃO
A conexão é feita através da biblioteca Tedious, a qual disponibiliza um conector nativo com o servidor de banco de dados. Esta solução é dependente do componente DotEnv, o qual permite criar arquivos de configuração .env para armazenar as informações de parametrização da conexão.
São métodos exportados pela conexão:
- connect
- connected
- close
- beginTransaction
- commit
- rollback
- execSQL(sql)
- execProc(procName, params)
- openSQL(sql)
- openProc(procName, params)
Para utilização da conexão em aplicações Node.JS, seguem exemplos de uso deste componente.
Execução de uma instrução DML:
let sql = "insert into tab_exemplo(id, descricao) values (1, 'Texto de exemplo')"; const connection = require('../components/connection'); connection.execSQL(sql).then(rowCount => { console.log('Linhas afetadas: %d', rowCount); }).catch(error => { console.log(error.message); });
Execução de instrução SQL:
let sql = "select * tab_exemplo"; const connection = require('../components/connection'); connection.openSQL(sql).then(resultSet=> { console.log(JSON.stringfy(resultSet)); }).catch(error => { console.log(error.message); });
04. DEMAIS INFORMAÇÕES
Para uma perfeita utilização desta solução, o projeto deve atender os seguintes requisitos:
- Conter um arquivo .env na raiz do diretório do projeto e;
- O arquivo .env deve conter, ao menos, estes parâmetros:
- APP_NAME
- DB_AUTH_TYPE
- DB_DATABASE
- DB_ENCRYPT
- DB_HOSTNAME
- DB_INSTANCE
- DB_PASSWORD
- DB_USERNAME