備忘錄_20160105(定位)
修改
回首頁
程式 2020-05-06 23:37:37 1588779457 100
node.js 讀取 sql server (非同步版本)
node.js 讀取 sql server (非同步版本)
// https://tediousjs.github.io/tedious/index.html
//
// mkdir project01
// cd project01
// npm install tedious
//
// notepad test.js (請參考下方程式碼)
// node test.js
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;
var config =
{
server: '127.0.0.1', //update me
authentication:
{
type: 'default',
options:
{
userName: 'username', //update me
password: 'password' //update me
}
},
options:
{
trustServerCertificate: false,
// If you are on Microsoft Azure, you need encryption:
encrypt: false,
database: 'databasename', //update me
port: 1433
}
};
var connection = new Connection(config);
connection.on
(
'connect',
function(err)
{
// If no error, then good to proceed.
if(err)
{
console.log(err);
}
else
{
console.log("Connected");
executeStatement();
}
}
);
function helloWorld()
{
console.log("Hello, world!");
setTimeout(helloWorld, 5000);
}
function executeStatement()
{
request = new Request
(
"select top 5 * from tablename",
function(err)
{
console.log("new Request");
if (err) { console.log(err); }
connection.close();
// process.exit();
helloWorld();
}
);
var result = "";
request.on
(
'row',
function(columns)
{
console.log("request.on row");
columns.forEach
(
function(column)
{
if (column.value === null) { console.log('NULL'); }
else { result += column.metadata.colName + ":" + column.value + " "; }
}
);
console.log(result);
result ="";
}
);
request.on
(
'done',
function(rowCount, more)
{
console.log("request.on done");
console.log(rowCount + ' rows returned');
}
);
console.log("ready to execute sql");
connection.execSql(request);
}
console.log("Everything is okay!");
connection.connect();