node.jsからSQL Serverいじる必要が発生するかもしれないのでメモ。
SQL Serverの起動
MacでSQL Serverを動かすにはDockerを使います。
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=P@ssw0rd!" -p 1433:1433 -d mcr.microsoft.com/mssql/server
パスワードが簡単過ぎるとだめみたい。
sqlcmd
SQL Server標準のクライアントツールをインストールします。
使いにくいのでpythonツールであるmssql-cliを利用しようと思いますたが、Python3.10.xで動かず断念。
Azure Data Studioという感じGUIツールも使えます。
インストール
インストールはBrewでできるみたいです。
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew install mssql-tools
利用
簡単な操作方法はこちらをご覧ください。
ログイン
sqlcmd -S server -U user -P password
データベース作成
create database testdb;
go
データベース切替
use testdb;
go
テーブル作成
create table members(
id int identity(1,1) primary key,
name nvarchar(32),
age int
);
go
データ挿入
insert into members(name,age) values('hoge',10);
go
Node.jsからアクセスしてみる
以前はSQL Serverへの接続にはtediousというモジュールを使っていましたが、最近はnode-mssqlというのがあるみたいなので、そっちを利用してみます。
開発元は同じようです。
インストール
npm install mssql
実装
本当はpoolとか使ったほうがいいのでしょうけど、とりあえず接続+Selectのみ。
index.js
const sql = require("mssql");
const config = {
server: "localhost",
user: "sa",
password: "P@ssw0rd!",
database: "testdb",
options: {
// enableArithAbort: true,
encrypt: false,
}
};
(async () => {
try {
const conn = await sql.connect(config);
const query = await conn.query("select * from members");
query.recordset.forEach(async row => {
console.log(`id: ${row.id} name:${row.name} age:${row.age}`);
});
conn.close();
} catch (e) {
console.log(e);
}
})();
動作確認
node index.js
id: 1 name:hoge age:10