Azure Functions에서 SQLServer에 연결 (node.js)
14373 단어 SQLServerAzureFunctionstedious
전제
· 빈 AzureFunctions 함수가 있습니다.
· 어딘가에 SQLServer가 있습니다.
SQL 연결에는 tedious 드라이버를 사용합니다.
htps //w w. 음 pmjs. 코 m / Pac 가게 / Tea s s
서둘러, 타인에게 전할 필요가 있었으므로, 순서를 메모 정도로.
아래에서는 tedious의 azurefunctions에 설치 절차와 샘플 코드를 사용하여 연결을 확인합니다.
절차
>cd HttpTriggerJS1
HttpTriggerJS1>npm init -y
HttpTriggerJS1>npm install tedious --save
이 예에서는, index.js의 선두에, 이하에서도 추가해 본다.
phonebook이라는 테이블이 xxxx.database.windows.net의 dddd라는 데이터베이스에 있다고 가정합니다.
데이터베이스 사용자는 ID/Password가 uuuu/pppp로 한다.
var Connection = require('tedious').Connection;
var TedRequest = require('tedious').Request;
var TYPES = require('tedious').TYPES;
function scan_table(context, q_name){
//データベース接続情報
var config = {
userName: 'uuuu',
password: 'pppp',
server: 'xxxx.database.windows.net',
options: {
encrypt: true,
database: 'dddd'
}
};
//SQLは、一応、prepared statementにする。
var query = "SELECT [familyname], [mobilenumber] "+
"FROM [dbo].[phonebook] "+
"WHERE [familyname] = @WHO";
//CreateConnection
var connection = new Connection(config);
//接続
connection.on('connect', function(err) {
if(err){
//Error Handling
} else {
// SQL実行
results = executeStatement(query, obj);
}
});
connection.on('end', function(err){
console.log("connection End");
});
//SQL実行の実体
function executeStatement(query) {
//応答を詰め込むバッファ
var arr = [];
var con_cnt = 2; //取得する列数
console.log("executeStatement start");
queryrequest = new TedRequest(query, function(err){
if (err) {
console.log(err);
} else {
//応答を返す場所。
//arrをいい感じに処理する。
context.log(arr[0][0]+arr[0][1]);
}
});
//検索条件の指定
queryrequest.addParameter('WHO', TYPES.NVarChar, q_name);
queryrequest.on('row', function(columns) {
//見つかった。
var record = new Array(con_cnt);
var i = 0;
columns.forEach( function(column) {
record[i++] = column.value;
});
arr.push(record);
});
queryrequest.on('requestCompleted', function(rowCount, more){
connection.close();
});
connection.execSql(queryrequest);
return;
}
}
index.js에서 뛰어 넘어보십시오.
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
if (req.query.name || (req.body && req.body.name)) {
context.res = {
// status: 200, /* Defaults to 200 */
body: "Hello " + (req.query.name || req.body.name)
};
//データベースアクセスと応答
scan_table(context, req.query.name);
}
else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
}
context.done();
};
움직여 본다.
azure 포털의 「실행 버튼」옆의 「함수의 URL의 취득」에서 꺼낸 URL에 대해서, 다른 브라우저로부터, ?name=xxx를 붙여, Functions를 호출해 본다. xxx는 SQL의 WHERE 절입니다.
azure 포털에서는 함수 화면을 계속 표시합니다.
그러면 azure 포털의 로그 화면에 결과가 나올 것입니다.
Reference
이 문제에 관하여(Azure Functions에서 SQLServer에 연결 (node.js)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ozawako1/items/c08b281fc3b2791bba6a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Azure Functions에서 SQLServer에 연결 (node.js)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ozawako1/items/c08b281fc3b2791bba6a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)