Node.js Express 프레임워크를 사용하여 SQL Server에 연결(페이지 만들기)
소개
이전 게시물을 참조하여 SQL Server를 준비하십시오.
환경
OS:Windows 10 Pro 64bit
DB:SQL Server 2019(Cent OS 8 on Hyper-V)
node.js:v12.16.1
npm:v6.13.4
Express:v4.16.1
Editor:Visual Studio Code
Express 프레임워크의 병아리 만들기
express --view=ejs
npm install
자세한 것은 여기 를 참고해 주세요.
SQL Server에 연결 드라이버 (tedious) 설치
npm install tedious --save
D:\Node\ExpressTest01>npm install tedious --save
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
+ [email protected]
added 79 packages from 184 contributors and audited 263 packages in 16.976s
found 0 vulnerabilities
WARN으로 표시되지만 무시하고 괜찮습니다.
이번에는 v8.0.1이 설치되었습니다.
js 파일 작성
routes 폴더에 sqlSample.js를 만듭니다.
sqlSample.js
var express = require('express');
var router = express.Router();
// Connectionを定義する
var Connection = require('tedious').Connection;
// SQLServerの接続定義を記載する。
var config = {
server: 'xxx.xxx.xxx.xxx', // IPアドレスかサーバー名を指定する。
authentication: {
type: 'default',
options: {
userName: 'xxx', // 接続ユーザー名を指定する。
password: 'xxx' // 接続ユーザーのパスワードを指定する。
}
},
options: {
encrypt: true,
database: 'Training01' // データベース名を指定する。
}
};
/* GET users listing. */
router.get('/', function (req, res, next) {
var connection = new Connection(config);
var content = []; // DBからselectした結果を格納する変数
// DB接続した際のイベントハンドラ
connection.on('connect', function (err) {
if (err) {
// ERROR - SQL Serer connect error.
console.log('SQL Serer connect error.(' + err + ')');
// 終了
process.exit();
}
console.log("connected");
executeStatement();
});
// DB接続を終了した際のイベントハンドラ
// DB接続を切断した後に画面を描写する
connection.on('end', function () {
console.log("disconnected");
res.render('sqlSample', { title: '製品一覧', content: content });
});
var Request = require('tedious').Request;
// SQLを発行する関数
function executeStatement() {
// 発行するSQLを記載する
request = new Request("SELECT * FROM ProductsMaster with (NOLOCK)", function (err) {
if (err) {
console.log(err);
}
});
var result = {}; // SQLの結果を行ごとにオブジェクトに格納する。
// SQLの行ごとに実行するイベントハンドラ
request.on('row', function (columns) {
columns.forEach(function (column) {
if (column.value === null) {
console.log('NULL');
} else {
result[column.metadata.colName] = column.value;
}
});
content.push(result);
result = {};
});
// SQLのリクエスト完了時のイベントハンドラ。
// コネクションをクローズしないとDBにいらないプロセスが残るので、コネクションをクローズする。
request.on('requestCompleted', function () {
console.log('requestCompleted');
connection.close();
});
// DBへSQLを発行する。
connection.execSql(request);
}
});
module.exports = router;
ejs 파일 작성
views 폴더에 sqlSample.ejs를 만듭니다.
sqlSample.ejs<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<div role="main">
<table>
<tr>
<th>製品コード</th>
<th>製品名</th>
<th>単価</th>
</tr>
<% content.forEach(function (value, key) { %>
<tr>
<td><%= value.ProductsCode %></td>
<td><%= value.ProductsName %></td>
<td><%= value.UnitPrice %></td>
</tr>
<% }); %>
</table>
</div>
</body>
</html>
app.js 수정
루트 바로 아래에 있는 app.js에 다음 두 줄을 추가합니다.
var sqlSample= require('./routes/sqlSample');
app.use('/sqlSample', sqlSample);
동작 확인
명령 프롬프트에서 다음 명령을 실행합니다.
npm start
브라우저에서 'http://localhost:3000/sqlSample'에 액세스합니다.
다음 캡처가 표시되면 OK입니다.
참고/출전
3단계: Node.js를 사용하여 SQL에 연결하는 개념 증명
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 - jp / sql / 이런 ct / 그래서 - js / s는 p 3-p 로오 f - f js?ゔ ぃ w = sql - r ゔ ぇ r ゔ ぇ r15
Node.js에서 SQLServer2017에 연결하여 SELECT 결과를 화면에 표시하는 샘플
h tp // 병아리 c. 하테나 bぉg. 코m/엔트리/2018/01/28/141831
Reference
이 문제에 관하여(Node.js Express 프레임워크를 사용하여 SQL Server에 연결(페이지 만들기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_skri/items/2742dc7603c5c39156bf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
express --view=ejs
npm install
자세한 것은 여기 를 참고해 주세요.
SQL Server에 연결 드라이버 (tedious) 설치
npm install tedious --save
D:\Node\ExpressTest01>npm install tedious --save
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
+ [email protected]
added 79 packages from 184 contributors and audited 263 packages in 16.976s
found 0 vulnerabilities
WARN으로 표시되지만 무시하고 괜찮습니다.
이번에는 v8.0.1이 설치되었습니다.
js 파일 작성
routes 폴더에 sqlSample.js를 만듭니다.
sqlSample.js
var express = require('express');
var router = express.Router();
// Connectionを定義する
var Connection = require('tedious').Connection;
// SQLServerの接続定義を記載する。
var config = {
server: 'xxx.xxx.xxx.xxx', // IPアドレスかサーバー名を指定する。
authentication: {
type: 'default',
options: {
userName: 'xxx', // 接続ユーザー名を指定する。
password: 'xxx' // 接続ユーザーのパスワードを指定する。
}
},
options: {
encrypt: true,
database: 'Training01' // データベース名を指定する。
}
};
/* GET users listing. */
router.get('/', function (req, res, next) {
var connection = new Connection(config);
var content = []; // DBからselectした結果を格納する変数
// DB接続した際のイベントハンドラ
connection.on('connect', function (err) {
if (err) {
// ERROR - SQL Serer connect error.
console.log('SQL Serer connect error.(' + err + ')');
// 終了
process.exit();
}
console.log("connected");
executeStatement();
});
// DB接続を終了した際のイベントハンドラ
// DB接続を切断した後に画面を描写する
connection.on('end', function () {
console.log("disconnected");
res.render('sqlSample', { title: '製品一覧', content: content });
});
var Request = require('tedious').Request;
// SQLを発行する関数
function executeStatement() {
// 発行するSQLを記載する
request = new Request("SELECT * FROM ProductsMaster with (NOLOCK)", function (err) {
if (err) {
console.log(err);
}
});
var result = {}; // SQLの結果を行ごとにオブジェクトに格納する。
// SQLの行ごとに実行するイベントハンドラ
request.on('row', function (columns) {
columns.forEach(function (column) {
if (column.value === null) {
console.log('NULL');
} else {
result[column.metadata.colName] = column.value;
}
});
content.push(result);
result = {};
});
// SQLのリクエスト完了時のイベントハンドラ。
// コネクションをクローズしないとDBにいらないプロセスが残るので、コネクションをクローズする。
request.on('requestCompleted', function () {
console.log('requestCompleted');
connection.close();
});
// DBへSQLを発行する。
connection.execSql(request);
}
});
module.exports = router;
ejs 파일 작성
views 폴더에 sqlSample.ejs를 만듭니다.
sqlSample.ejs<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<div role="main">
<table>
<tr>
<th>製品コード</th>
<th>製品名</th>
<th>単価</th>
</tr>
<% content.forEach(function (value, key) { %>
<tr>
<td><%= value.ProductsCode %></td>
<td><%= value.ProductsName %></td>
<td><%= value.UnitPrice %></td>
</tr>
<% }); %>
</table>
</div>
</body>
</html>
app.js 수정
루트 바로 아래에 있는 app.js에 다음 두 줄을 추가합니다.
var sqlSample= require('./routes/sqlSample');
app.use('/sqlSample', sqlSample);
동작 확인
명령 프롬프트에서 다음 명령을 실행합니다.
npm start
브라우저에서 'http://localhost:3000/sqlSample'에 액세스합니다.
다음 캡처가 표시되면 OK입니다.
참고/출전
3단계: Node.js를 사용하여 SQL에 연결하는 개념 증명
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 - jp / sql / 이런 ct / 그래서 - js / s는 p 3-p 로오 f - f js?ゔ ぃ w = sql - r ゔ ぇ r ゔ ぇ r15
Node.js에서 SQLServer2017에 연결하여 SELECT 결과를 화면에 표시하는 샘플
h tp // 병아리 c. 하테나 bぉg. 코m/엔트리/2018/01/28/141831
Reference
이 문제에 관하여(Node.js Express 프레임워크를 사용하여 SQL Server에 연결(페이지 만들기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_skri/items/2742dc7603c5c39156bf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
npm install tedious --save
D:\Node\ExpressTest01>npm install tedious --save
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
+ [email protected]
added 79 packages from 184 contributors and audited 263 packages in 16.976s
found 0 vulnerabilities
routes 폴더에 sqlSample.js를 만듭니다.
sqlSample.js
var express = require('express');
var router = express.Router();
// Connectionを定義する
var Connection = require('tedious').Connection;
// SQLServerの接続定義を記載する。
var config = {
server: 'xxx.xxx.xxx.xxx', // IPアドレスかサーバー名を指定する。
authentication: {
type: 'default',
options: {
userName: 'xxx', // 接続ユーザー名を指定する。
password: 'xxx' // 接続ユーザーのパスワードを指定する。
}
},
options: {
encrypt: true,
database: 'Training01' // データベース名を指定する。
}
};
/* GET users listing. */
router.get('/', function (req, res, next) {
var connection = new Connection(config);
var content = []; // DBからselectした結果を格納する変数
// DB接続した際のイベントハンドラ
connection.on('connect', function (err) {
if (err) {
// ERROR - SQL Serer connect error.
console.log('SQL Serer connect error.(' + err + ')');
// 終了
process.exit();
}
console.log("connected");
executeStatement();
});
// DB接続を終了した際のイベントハンドラ
// DB接続を切断した後に画面を描写する
connection.on('end', function () {
console.log("disconnected");
res.render('sqlSample', { title: '製品一覧', content: content });
});
var Request = require('tedious').Request;
// SQLを発行する関数
function executeStatement() {
// 発行するSQLを記載する
request = new Request("SELECT * FROM ProductsMaster with (NOLOCK)", function (err) {
if (err) {
console.log(err);
}
});
var result = {}; // SQLの結果を行ごとにオブジェクトに格納する。
// SQLの行ごとに実行するイベントハンドラ
request.on('row', function (columns) {
columns.forEach(function (column) {
if (column.value === null) {
console.log('NULL');
} else {
result[column.metadata.colName] = column.value;
}
});
content.push(result);
result = {};
});
// SQLのリクエスト完了時のイベントハンドラ。
// コネクションをクローズしないとDBにいらないプロセスが残るので、コネクションをクローズする。
request.on('requestCompleted', function () {
console.log('requestCompleted');
connection.close();
});
// DBへSQLを発行する。
connection.execSql(request);
}
});
module.exports = router;
ejs 파일 작성
views 폴더에 sqlSample.ejs를 만듭니다.
sqlSample.ejs<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<div role="main">
<table>
<tr>
<th>製品コード</th>
<th>製品名</th>
<th>単価</th>
</tr>
<% content.forEach(function (value, key) { %>
<tr>
<td><%= value.ProductsCode %></td>
<td><%= value.ProductsName %></td>
<td><%= value.UnitPrice %></td>
</tr>
<% }); %>
</table>
</div>
</body>
</html>
app.js 수정
루트 바로 아래에 있는 app.js에 다음 두 줄을 추가합니다.
var sqlSample= require('./routes/sqlSample');
app.use('/sqlSample', sqlSample);
동작 확인
명령 프롬프트에서 다음 명령을 실행합니다.
npm start
브라우저에서 'http://localhost:3000/sqlSample'에 액세스합니다.
다음 캡처가 표시되면 OK입니다.
참고/출전
3단계: Node.js를 사용하여 SQL에 연결하는 개념 증명
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 - jp / sql / 이런 ct / 그래서 - js / s는 p 3-p 로오 f - f js?ゔ ぃ w = sql - r ゔ ぇ r ゔ ぇ r15
Node.js에서 SQLServer2017에 연결하여 SELECT 결과를 화면에 표시하는 샘플
h tp // 병아리 c. 하테나 bぉg. 코m/엔트리/2018/01/28/141831
Reference
이 문제에 관하여(Node.js Express 프레임워크를 사용하여 SQL Server에 연결(페이지 만들기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_skri/items/2742dc7603c5c39156bf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<div role="main">
<table>
<tr>
<th>製品コード</th>
<th>製品名</th>
<th>単価</th>
</tr>
<% content.forEach(function (value, key) { %>
<tr>
<td><%= value.ProductsCode %></td>
<td><%= value.ProductsName %></td>
<td><%= value.UnitPrice %></td>
</tr>
<% }); %>
</table>
</div>
</body>
</html>
루트 바로 아래에 있는 app.js에 다음 두 줄을 추가합니다.
var sqlSample= require('./routes/sqlSample');
app.use('/sqlSample', sqlSample);
동작 확인
명령 프롬프트에서 다음 명령을 실행합니다.
npm start
브라우저에서 'http://localhost:3000/sqlSample'에 액세스합니다.
다음 캡처가 표시되면 OK입니다.
참고/출전
3단계: Node.js를 사용하여 SQL에 연결하는 개념 증명
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 - jp / sql / 이런 ct / 그래서 - js / s는 p 3-p 로오 f - f js?ゔ ぃ w = sql - r ゔ ぇ r ゔ ぇ r15
Node.js에서 SQLServer2017에 연결하여 SELECT 결과를 화면에 표시하는 샘플
h tp // 병아리 c. 하테나 bぉg. 코m/엔트리/2018/01/28/141831
Reference
이 문제에 관하여(Node.js Express 프레임워크를 사용하여 SQL Server에 연결(페이지 만들기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_skri/items/2742dc7603c5c39156bf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
npm start
3단계: Node.js를 사용하여 SQL에 연결하는 개념 증명
htps : // / cs. 미 c 로소 ft. 이 m / 그럼 - jp / sql / 이런 ct / 그래서 - js / s는 p 3-p 로오 f - f js?ゔ ぃ w = sql - r ゔ ぇ r ゔ ぇ r15
Node.js에서 SQLServer2017에 연결하여 SELECT 결과를 화면에 표시하는 샘플
h tp // 병아리 c. 하테나 bぉg. 코m/엔트리/2018/01/28/141831
Reference
이 문제에 관하여(Node.js Express 프레임워크를 사용하여 SQL Server에 연결(페이지 만들기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t_skri/items/2742dc7603c5c39156bf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)