Node.js 및 Microsoft SQL Server
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
원래 질문은 과거와 현재 사용하고 노드 MSSQL을 감싸는 @Patrik Šimek 응답으로 지루한을 Tracker1이 갈 수있는 가장 좋은 방법입니다 @ 응답한다.
윈도우 / 푸른 노드 SQLSERVER 드라이버 허용 대답에서 언급 한 전제 조건의 미친 목록을 설치해야합니다 : 비주얼 C ++ 2010, SQL 서버 네이티브 클라이언트 11.0, 파이썬 2.7.x 및 아마도 윈도우 7 SDK 64 비트에 대한을의 섬기는 사람. 저에게 물어 보면 Windows Server에 이러한 모든 GB의 소프트웨어를 설치하고 싶지 않습니다.
정말 Tedious 를 사용하고 싶습니다 . 그러나 또한 사용 노드 MSSQL을 싸서 쉽게 많은 코딩 할 수 있습니다.
2014 년 8 월 업데이트
- 두 모듈 모두 여전히 적극적으로 유지 관리됩니다. 문제는 매우 빠르고 효율적으로 대응됩니다.
- 두 모듈 모두 SQL Server 2000-2014를 지원합니다.
- node-mssql 1.0.1부터 지원되는 스트리밍
2015 년 2 월 업데이트-2.x (안정적, npm)
- 최신 Tedious 1.10으로 업데이트되었습니다.
- 약속
- 요청을 객체 스트림으로 파이프
- 자세한 SQL 오류
- 트랜잭션 중단 처리
- 통합 유형 검사
- CLI
- 사소한 수정
이것은 평범한 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);
}
여기에 오는 노드 MSSQL 종속성으로 지루한 있습니다. 이것을 사용하십시오!
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.js SQL 서버 클라이언트가 출시되었습니다. 나는 node-tds 라는 것을 썼고 지루 하다는 다른 것이 있습니다.
node-tds.js를 사용할 수 있습니다 .
SQL 서버와 통신 할 수 있도록 node.js 용 TDS 프로토콜의 흥미로운 구현 ...
용법:
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 모듈을 드라이버로 사용하고 사용하기 쉬운 통합 인터페이스를 제공합니다. 또한 추가 기능과 버그 수정을 추가합니다.
추가 기능 :
- Unified interface for multiple MSSQL drivers
- Connection pooling with Transactions and Prepared statements
- Parametrized Stored Procedures for all drivers
- Serialization of Geography and Geometry CLR types
- Smart JS data type to SQL data type mapper
- Support both Promises and standard callbacks
(duplicating my answer from another question).
I would recommend node-mssql, which is a nice wrapper for other connectors, the default being my previous choice (Tedious) bringing a bit nicer of an interface. This is a JavaScript implimentation, with no compilation requirements, meaning you can work in windows and non-windows environments alike.
Another option, if you don't mind bringing in .Net or Mono with a binary bridge would be to use edge.js. Which can be very nice if you want to leverage .Net libraries in node.js
node-tds is abandoned, node-odbc doesn't work with windows, and the MS node-sqlserver driver doesn't seem to work on non-windows (and has some goofy requirements).
TSQLFTW - T-SQL For The WIN(dows) - by Fosco Marotto https://github.com/gfosco/tsqlftw
It is a C# and ADO .NET managed code solution, with a C++ wrapper that Node.js can import and work with.
If you know .NET you could try WCF Data Services (ADO.NET Data Services); write an WCF app for data access and use odata (REST on steroids) to interact with the database
- WCF Data Services: http://msdn.microsoft.com/en-us/data/bb931106
- OData: http://www.odata.org/
If you are into SOA and use SQL Server 2005 you could check out the Native XML Web Services for Microsoft SQL Server 2005
http://msdn.microsoft.com/en-us/library/ms345123(v=sql.90).aspx
You could access SQL Server as a web service (HTTP, SOAP)
Microsoft (The Windows Azure Team) just released a node driver for SQL SERVER.
It has no package for npm yert, as far as I know, but it is open sourced. And the accepting community contribution too.
https://github.com/WindowsAzure/node-sqlserver
Introduction blog post here:
If you are running on .NET look at entityspaces.js at, we are creating an entire universal ORM for Node.js that will not require a WCF JSON service ... https://github.com/EntitySpaces/entityspaces.js
If you are using MSFT backend technology you could use it now, however, we are creating a universal Node.js ORM and will have more information on that soon
There is an update from Microsoft. Here is a series of blog posts (part 1 and part 2).
Node.js SQL Server drivers seem very immature - there's a mish-mash of different projects with varying dependencies, performance, and levels of completeness, none of which inspire confidence.
I'd propose using edge-sql. This leverages .NET's mature database driver ecosystem, and depends only on .NET (a no-brainer if you are running node on Windows - if not there is Mono, but I have not tried that).
Here is a node example (server.js) using edge-sql (note you need to put your connection string into an environment variable as per edge-sql docs):
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);
});
You can also leverage Edge.js with .NET to access other databases, such as Oracle. I have given an example of that approach here.
The status as of May 2016 is as follows.
The official Microsoft SQL Driver for Node, called node-sqlserver, has not been updated for a number of years.
There is a new fork on this called node-sqlserver-v8 that works with Node Versions 0.12.x. and >= 4.1.x. This fork also has pre-compiled binaries for x64 and x86 targets.
The package is available on NPM as msnodesqlv8.
I recommend this package because it is lightweight (has no dependencies) and it is the only one that works with all recent version of SQL Server, including SQL LocalDB.
Now (2016) you can use Sequelize ORM that supports:
- MySQL / MariaDB,
- PostgreSQL
- SQLite
- Microsoft SQL Server
It is widely used according to its Github's stars.
that link details only a sql 2000 solution, not sql 2005 nor sql 2008, and also that code only allow sending sql text, and does not allow the execution of stored procedures.
The real solution would be to install node JS on a linux server, or on a virtual linux server on a windows machine, and then go to microsoft web site and download the JDBC java drivers and install those microsoft ms sql java jdbc drivers on either the linux server or linux virtual server.
참고URL : https://stackoverflow.com/questions/5156806/node-js-and-microsoft-sql-server
'Nice programing' 카테고리의 다른 글
#pragma 경고 푸시 / 팝을 사용하여 일시적으로 경고 수준을 변경하는 것이 올바른 방법입니까? (0) | 2020.11.04 |
---|---|
JSONResult를 문자열로 (0) | 2020.11.04 |
저장 프로 시저 호출을위한 Spring JDBC 템플릿 (0) | 2020.11.04 |
C ++에서 인터페이스를 구현하는 방법? (0) | 2020.11.04 |
중첩 된 객체를 사용할 때 AngularJS에서 재귀 템플릿을 어떻게 만들 수 있습니까? (0) | 2020.11.04 |