Khu*_*lik 69 sql-server node.js node-mssql tedious
有什么方法可以让我的Node.js应用程序与Microsoft SQL通信?我没有在野外看到任何MS SQL驱动程序?
我将一个非常简单的应用程序放在一起,需要能够与现有的MS SQL数据库进行通信(否则我会使用mongoDB或Redis)
Chr*_*eek 50
最初的问题是旧的,现在使用node-mssql作为@PatrikŠimek的答案,包装Tedious,因为@ Tracker1回答是最好的方法.
接受的答案中提到的Windows/Azure node-sqlserver驱动程序要求您安装一个疯狂的先决条件列表:Visual C++ 2010,SQL Server Native Client 11.0,python 2.7.x以及可能还有64位的Windows 7 SDK服务器.如果您问我,您不希望在Windows Server上安装所有这些GB的软件.
你真的想要使用Tedious.而且还使用node-mssql来包装它并使编码更容易.
2014年8月更新
2015年2月更新 - 2.x(稳定,npm)
这是明显的繁琐:
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);
}
Run Code Online (Sandbox Code Playgroud)
这里有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);
});
});
Run Code Online (Sandbox Code Playgroud)
小智 21
我们刚刚发布了针对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
Joh*_*ker 10
你可以使用node-tds.js:
node.js的TDS协议令人兴奋的实现,允许与sql server通信...
用法:
Run Code Online (Sandbox Code Playgroud)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实现,没有编译要求,这意味着您可以在Windows和非Windows环境中工作.
另一种选择,如果你不介意引进.NET或单用二进制桥是使用edge.js.如果你想在node.js中利用.Net库,这可能会非常好
node-tds被放弃了,node-odbc不能用于windows,而MS node-sqlserver驱动程序似乎不适用于非windows(并且有一些愚蠢的要求).
TSQLFTW - T-SQL for WIN(dows) - 作者:Fosco Marotto https://github.com/gfosco/tsqlftw
它是一个C#和ADO .NET托管代码解决方案,具有Node.js可以导入和使用的C++包装器.
如果您了解.NET,则可以尝试WCF数据服务(ADO.NET数据服务); 编写一个WCF应用程序进行数据访问,并使用odata(类固醇上的REST)与数据库进行交互
如果您使用的是SOA并使用SQL Server 2005,则可以查看Microsoft SQL Server 2005的Native XML Web Services
http://msdn.microsoft.com/en-us/library/ms345123(v=sql.90).aspx
您可以将SQL Server作为Web服务(HTTP,SOAP)访问
| 归档时间: |
|
| 查看次数: |
63427 次 |
| 最近记录: |