原来的问题很旧,现在使用节点 MSSQL https://github.com/patriksimek/node-mssql正如@Patrik Šimek 所回答的那样Tedious https://github.com/pekim/tedious正如@Tracker1 所回答的那样,这是最好的方法。
The Windows/Azure 节点-sqlserver 驱动程序 https://github.com/WindowsAzure/node-sqlserver正如接受的答案中提到的,需要您安装一系列疯狂的先决条件:Visual C++ 2010、SQL Server Native Client 11.0、python 2.7.x,可能还需要在服务器上安装 64 位 Windows 7 SDK。如果您问我,您肯定不想在 Windows Server 上安装所有这些 GB 的软件。
你确实想使用Tedious https://github.com/pekim/tedious. But also use 节点 MSSQL https://github.com/patriksimek/node-mssql包装它并使编码变得更加容易。
2014 年 8 月更新
- 这两个模块仍在积极维护中。问题得到快速有效的响应。
- 两个模块都支持 SQL Server 2000 - 2014
- 自 node-mssql 1.0.1 起支持流式处理
2015 年 2 月更新 - 2.x(稳定,npm)
- 更新到最新的Tedious 1.10
- Promises
- 将请求传送到对象流
- 详细的 SQL 错误
- 事务中止处理
- 集成类型检查
- CLI
- 小修复
这很简单Tedious https://github.com/pekim/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 https://github.com/patriksimek/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);
});
});