Retorno de query em variável Javascript
Bom dia pessoal,
Não sei muito de javascript, recentemente comecei a trabalhar com node.js e tenho uma dúvida. Meu sistema deve ler um xml armazenado no banco de dados e convertê-lo em uma Danfe. Como eu faço para armazenar o xml (que retornou da minha query) em uma variável? Segue o código que estou fazendo:
obs: Meu SGBD é o SQL Server, no node tive de usar o drive mssql.
Não sei muito de javascript, recentemente comecei a trabalhar com node.js e tenho uma dúvida. Meu sistema deve ler um xml armazenado no banco de dados e convertê-lo em uma Danfe. Como eu faço para armazenar o xml (que retornou da minha query) em uma variável? Segue o código que estou fazendo:
const sql = require('mssql');
const config = {
user: 'XXXX',
password: 'XXXX',
server: 'Exemplo',
database: 'Meubanco',
};
sql.connect(config).then(() => {
return sql.query`SELECT ISNULL(CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), campo_xml)),'') AS xml FROM Tabela
WHERE nota = 36220; `
}).then(result => {
console.dir(result); // aqui é retornado o resultado da query (meu xml), funciona normalmente;
}).catch(err => {
console.dir('Erro na consulta');
})
sql.on('error', err => {
console.dir('Erro ao acessar o banco');
});
obs: Meu SGBD é o SQL Server, no node tive de usar o drive mssql.
Gabriel
Curtidas 0
Respostas
Gabriel
01/06/2017
Update no caso:
Pessoal, fiz alguns testes, o que me chamou a atenção é que criei uma variável para armazenar o retorno da query, só que dentro do método ela funciona perfeitamente, fora dele, não traz o valor que eu quero da variável.
Alguém pode me ajudar? Não estou conseguindo usar a variável "lexml" armazenando o conteúdo da query fora do método de conexão.
Pessoal, fiz alguns testes, o que me chamou a atenção é que criei uma variável para armazenar o retorno da query, só que dentro do método ela funciona perfeitamente, fora dele, não traz o valor que eu quero da variável.
var lexml = 'xml';
sql.connect(config).then(() => {
return sql.query`SELECT ISNULL(CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), campo_xml)),'') AS xml FROM Tabela
WHERE DOC_ID = 36220; `;
}).then(result => {
lexml = result.recordset[0].XML_NF.toString();
console.log(lexml); <-------------- Aqui imprime o xml normalmente no log
return lexml;
}).catch(err => {
console.dir('Erro na consulta');
})
sql.on('error', err => {
console.dir('Erro ao acessar o banco');
});
console.log(lexml); <------------- Aqui imprime apenas 'xml'
Alguém pode me ajudar? Não estou conseguindo usar a variável "lexml" armazenando o conteúdo da query fora do método de conexão.
GOSTEI 0