response.write on Tedious connection pool
catoszyrko opened this issue · 5 comments
catoszyrko commented
Hello Pekin,
Can you help me about print results on site,
I could print on console.log but not on website.
var ConnectionPool = require('tedious-connection-pool');
var Request = require('tedious').Request;
// LEVANTA ID
var id = req.params.id;
res.contentType('application/json');
var connectionConfig = {
"userName": "user",
"password": "pass",
"server": "localhost",
"options": {
"database": "mydb"
}
};
var poolConfig = { max: 10, min: 2, idelTimeOutMills:30000 };
var pool = new ConnectionPool(poolConfig, connectionConfig);
pool.requestConnection(function (err, connection) {
if(!err) {
var sSiglaEmpresa = id;
var SQL=String("SELECT * FROM Empresa WHERE Codigo_Empresa = '"+ sSiglaEmpresa +"' ");
var request = new Request(SQL, function(err, rowCount) {
// connection.close();
});
request.on('row', function(columns) {
var columna = columns[1].value;
console.log(columna);
});
connection.on('connect', function(err) {
connection.execSql(request);
});
}else{
console.log("Error al acceder a la base de datos.");
}
});
res.write(JSON.stringify("Hello" + id ));
pekim commented
I'm guessing what you want to do, but perhaps something like this.
...
var request = new Request(SQL, function(err, rowCount) {
// connection.close();
});
request.on('row', function(columns) {
var columna = columns[1].value;
res.write(columna);
});
connection.on('connect', function(err) {
connection.execSql(request);
});
...
Or maybe, if you want to wait until you have all of the rows, this.
...
var columnValues = [];
var request = new Request(SQL, function(err, rowCount) {
res.write(JSON.stringify(columnValues));
// connection.close();
});
request.on('row', function(columns) {
columnValues.push(columns[1].value);
});
connection.on('connect', function(err) {
connection.execSql(request);
});
...
catoszyrko commented
Hey thank you!
I still have problems --> Object has no method 'write'
var ConnectionPool = require('tedious-connection-pool');
var Request = require('tedious').Request;
exports.getNombre = function(req,res){
res.contentType('application/json');
console.log(req.params.id);
var connectionConfig = {
"userName": "user",
"password": "pass",
"server": "localhost",
"options": {
"database": "mydb"
}
};
var poolConfig = { max: 10, min: 2, idelTimeOutMills:30000 };
var pool = new ConnectionPool(poolConfig, connectionConfig);
pool.requestConnection(function (err, connection) {
var sSiglaEmpresa = req.params.id;
console.log(sSiglaEmpresa);
if(!err) {
var SQL=String("SELECT * FROM Empresa WHERE Codigo_Empresa = '"+sSiglaEmpresa+"'");
var columnValues = [];
var request = new Request(SQL, function(err, rowCount) {
res.write(JSON.stringify(columnValues));
// connection.close();
});
request.on('row', function(columns) {
columnValues.push(columns[1].value);
});
connection.on('connect', function(err) {
connection.execSql(request);
});
}else{
console.log("Error al hacer la busqueda.");
}
});
res.write(JSON.stringify("Hola"));
res.end();
}
catoszyrko commented
maybe i need another require?
catoszyrko commented
? somebody?
pekim commented
I'm not sure. The only object that you're calling write
on is res
, which looks like it should be in scope.
The problem isn't specific to tedious-connection-pool, but is a more general javascript problem.