Node.jsアプリをMicrosoft SQLと通信させる方法はありますか?私は、MS SQLドライバーを見たことがありませんか?
私は非常にシンプルなアプリを組み合わせており、既存のMS SQLデータベースと通信できる必要があります(そうでなければ、mongoDBまたはRedisを使用していました)
SQL Server接続用のNode.JSのプレビュードライバーをリリースしました。ここにあります: http://blogs.msdn.com/b/sqlphp/archive/2012/06/08/introducing-the-Microsoft-driver-for-node-js-for-sql- server.aspx
元の質問は古く、@ PatrikŠimekが答えた node-mssql を使用して、 Tedious を@ Tracker1が答えたのが最善の方法です。
Windows/Azure node-sqlserver driver 受け入れられた答えに記載されているように、次の必要条件のクレイジーリストをインストールする必要があります:Visual C++ 2010、SQL Server Native Client 11.0、python = 2.7.xおよびおそらくサーバー上の64ビット用のWindows 7 SDK。私に尋ねた場合、これらのGBのソフトウェアをすべてWindowsサーバーにインストールしたくないでしょう。
あなたは本当に Tedious を使いたいです。ただし、alsonode-mssql を使用してラップし、コーディングを簡単にします。
2014年8月更新
2015年2月更新-2.x(安定、npm)
これは単純です Tedious :
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
server: '192.168.1.212',
userName: 'test',
password: 'test'
};
var connection = new Connection(config);
connection.on('connect', function(err) {
executeStatement();
}
);
function executeStatement() {
request = new Request("select 42, 'hello world'", function(err, rowCount) {
if (err) {
console.log(err);
} else {
console.log(rowCount + ' rows');
}
connection.close();
});
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
console.log(column.value);
}
});
});
request.on('done', function(rowCount, more) {
console.log(rowCount + ' rows returned');
});
// In SQL Server 2000 you may need: connection.execSqlBatch(request);
connection.execSql(request);
}
ここに node-mssql があり、これは依存関係としてTediousを持っています。これを使って!
var sql = require('mssql');
var config = {
server: '192.168.1.212',
user: 'test',
password: 'test'
};
sql.connect(config, function(err) {
var request = new sql.Request();
request.query("select 42, 'hello world'", function(err, recordset) {
console.log(recordset);
});
});
おそらく node-tds.js を使用できます。
Node.jsのTDSプロトコルのエキサイティングな実装により、SQLサーバーとの通信が可能になります...
使用法:
var mssql = require('./mssql'); var sqlserver = new mssql.mssql(); sqlserver.connect({'Server':__IP__,'Port':'1433','Database':'','User Id':'','Password':''}); var result = sqlserver.execute("SELECT * FROM wherever;");
使用できる別のモジュールがあります- node-mssql 。他のTDSモジュールをドライバーとして使用し、使いやすい統合インターフェースを提供します。また、追加の機能とバグ修正も追加します。
追加機能:
(私の答えを別の質問から複製する)。
node-mssql をお勧めします。これは他のコネクタのニースラッパーであり、デフォルトは以前の選択肢( Tedious )で、インターフェイスが少し良くなりました。これはJavaScriptの実装であり、コンパイル要件はありません。つまり、ウィンドウ環境と非ウィンドウ環境の両方で作業できます。
もう1つのオプションとして、.NetまたはMonoをバイナリブリッジで取り込むことを気にしない場合は、 Edge.js を使用します。 node.jsで.Netライブラリを活用したい場合、これは非常に良いことです。
node-tds は放棄され、 node-odbc はWindowsでは動作せず、MS node-sqlserver ドライバーは動作しないようです非ウィンドウ(およびいくつかの間抜けな要件があります)。
TSQLFTW-WIN(dows)のT-SQL-Fosco Marottoによる https://github.com/gfosco/tsqlftw
これは、C#およびADO .NETマネージコードソリューションであり、Node.jsがインポートおよび操作できるC++ラッパーを備えています。
.NETを知っている場合は、WCF Data Services(ADO.NET Data Services)を試すことができます。データアクセス用のWCFアプリを作成し、odata(ステロイドのREST)を使用してデータベースと対話する
SOAでSQL Server 2005を使用している場合、Microsoft SQL Server 2005のネイティブXML Webサービスを確認できます。
http://msdn.Microsoft.com/en-us/library/ms345123(v = sql.90).aspx
Webサービス(HTTP、SOAP)としてSQL Serverにアクセスできます
Microsoft(Windows Azureチーム)は、SQL SERVERのノードドライバーをリリースしました。
私の知る限り、npm yert用のパッケージはありませんが、オープンソースです。また、受け入れられているコミュニティの貢献。
https://github.com/WindowsAzure/node-sqlserver
紹介ブログの投稿はこちら:
.NETで実行している場合は、entityspaces.jsを見て、WCF JSONサービスを必要としないNode.js用のユニバーサルORM全体を作成しています... https://github.com/EntitySpaces/ entityspaces.js
MSFTバックエンドテクノロジーを使用している場合は、今すぐ使用できますが、ユニバーサルNode.js ORMを作成しており、その詳細については近日中にお知らせします。
Node.js SQL Serverドライバーは非常に未熟なようです。依存関係、パフォーマンス、完全性のレベルが異なるさまざまなプロジェクトがあり、どれも自信を刺激しません。
Edge-sql を使用することを提案します。これは、.NETの成熟したデータベースドライバーエコシステムを活用し、.NETのみに依存します(Windowsでノードを実行している場合は簡単です-ない場合は Mono ですが、試したことはありません)。
Edge-sqlを使用したノードの例(server.js)です(Edge-sqlのドキュメントに従って、接続文字列を環境変数に入れる必要があることに注意してください)。
var Edge = require('Edge');
// Edge-sql has built in support for T-SQL / MSSQL Server
var getData = Edge.func('sql', function () {/*
select top 10 * from sometable
*/
});
getData(null, function (error, result) {
if (error) throw error;
console.log(result);
});
.NETで Edge.js を活用して、Oracleなどの他のデータベースにアクセスすることもできます。そのアプローチの例を示しました here 。
2016年5月現在の状況は次のとおりです。
node-sqlserver と呼ばれるNode用の公式Microsoft SQL Driverは、長年にわたって更新されていません。
これには node-sqlserver-v8 という新しいフォークがあり、Node Versions 0.12.x.および> = 4.1.xで動作します。このフォークにはpre -x64およびx86ターゲット用のコンパイル済みバイナリ。
パッケージは、NPMで msnodesqlv8 として入手できます。
このパッケージは軽量で(依存関係がない)、SQL LocalDBを含むSQL Serverのすべての最新バージョンで動作する唯一のパッケージであるため、お勧めします。