Biblioteca KND
- core
- DB
- route
- server
- xml
1. core
Neste "namespace" encontramos a base para todas as classe criadas nesta biblioteca.
Neste namespace:
- 1.1. KndObject
- 1.2. Collection
- 1.3. Log
- 1.4. NotImplementedError
2. DB
Neste Tópico:
Classe base de todos os objetos do da biblioteca.
'use strict';const core = core; let obj = ;console //Resultado console.log// KndObject
2. DB
Neste Tópico:
Classe genérica para todos os tipos de coleções
'use strict';const core = core; let colection = ;colection ; console; // Resultado do console.log// [Collection items: 5] forlet item of colection console; // Resultado do console.log// 1// 2// a// b// { id: 1, desc: "teste" }
2. DB
Neste Tópico:
Classe estática para geração de logs, tanto no console log quanto em um arquivo de texto. Está classe, além de mostrar log no console, também criará uma pasta chamada logs onde irá criar um arquivo log.txt, que também gravará as mensagens.
Obs.: Para configurar o caminho onde a classe criará a pasta de logs pode ser configurada no objeto global, conforme demonstrado abaixo. Caso o caminho não seja configurado, classe criará a pasta no local do onde a classe se encontra.
globalrootApp = 'c:\temp';
'use strict';const core = core;const Log = coreLog; Log;Log;Log;Log; // Resultado do console.log// 20/03/2018 17:44:36 - Minha mensagem 1// 20/03/2018 17:44:36 - Informação: Minha mensagem 2// 20/03/2018 17:44:36 - Erro: Minha mensagem 3// 20/03/2018 17:44:36 - Atenção: Minha mensagem 4
2. DB
Neste Tópico:
'use strict';const core = core; try throw "Método"; catch error console ; //Resultado console.log// "Método" não implementado ainda
2. DB
Neste "namespace" encontramos todas as bibliotécas para o manejo com o banco de dados (atualmente somete Oracle).
Todos os métodos das classes já estão implementados de forma que se possa usar com a biblioteca asyncawait, ou seja, todos eles devem estar dentro de uma função "suspendable" (async) para que funcione corretamente.
Neste namespace: 2.1 Configuração de acesso ao BD 2.2 Consulta simples 2.3 Consulta com binds 2.4 Transação de banco de dados
3. route
Para fazer a configuração de banco de dados, você deve acessar a pasta deste modulo e alterar o arquivo configDB.js conforme o código abaixo.
//configDB.jsmoduleexports = user: "USUARIO DO BD" password: "SENHA DO BD" connectString: "TNS/IP/SID"
3. route
Exemplo de uma consulta simples sem binds
'use strict';const async = ;const DB = DB; async { let con = DB; try con; let cmd = con; cmd; console; finally con; }; //Resultado console.log// [ { DUMMY: "X" } ]
3. route
Exemplo de uma consulta com binds
'use strict';const async = ;const DB = DB; async { let con = DB; let sql = "SELECT ID, NUMERO FROM PEDIDO WHERE SITUACAO = :0"; try con; let cmd = con; cmd; cmd; console; finally con; }; //Resultado console.log// [ // { ID: 1, NUMERO: 'PE001' }, // { ID: 2, NUMERO: 'PE002' } // ]
3. route
Exemplo de uma transação.
'use strict';const async = ;const DB = DB; const fn = async { let sql = "INSERT INTO PEDIDO (ID, NUMERO, SITUACAO) VALUES (:ID, :NUMERO, :SITUACAO)" let con = DB; let transaction = con; try con; let cmd = con; cmd ; console; transaction; catch err transaction; throw err; finally con; }; //Resultado console.log//{ outBinds: undefined, rowsAffected: 1, rows: undefined, metaData: undefined }
3. route
Este "namespace" é util para criar as rotas de acesso no servidor, em conjunto com o Express.js. As classes encapsulam o "requestHandler" das rotas.
'use strict';const express = ;const router = express;const route = route; const pageIndex = { res;}; //Esta classe trás um conexão abertaconst selectData = { let cmd = con; cmd; return cmdresult;}; //Este da commit caso não haja erros, senão, da rollback e envia o erro ao client (browser)const insertData = { let cmd = con; return cmd result;}; router;router;router; moduleexports = router;
4. Server
Este "namespace" é para fazer a criação de um servidor http. Segue um exemplo.
'use strict';const Server = Server;const app = ; // Aqui busca a application express const srv = 3000 app;srv; // inicia o servidor. Acesso http://localhost:3000