我想知道是否有人知道从 Node.js 连接到 Microsoft SQL 数据库的方法。我知道 MySQL 驱动程序,但我有需要从 MS SQL 数据库中提取的数据,我宁愿直接从 Node.js 中提取数据,也不愿破解某种 PHP 脚本。
7 回答
我怀疑您必须使用 JSON 输出 Web 服务来包装您的 SQL Server。从积极的方面来说,它应该相对容易做到。
如果 node.js 中的 JavaScript 引擎可以做到这一点,那就太好了:(来自如何从浏览器中的 JavaScript 连接到 SQL Server 数据库?):
var connection = new ActiveXObject("ADODB.Connection") ;
var connectionstring="Data Source=<server>;Initial Catalog=<catalog>;User ID=<user>;Password=<password>;Provider=SQLOLEDB";
connection.Open(connectionstring);
var rs = new ActiveXObject("ADODB.Recordset");
rs.Open("SELECT * FROM table", connection);
rs.MoveFirst
while(!rs.eof)
{
document.write(rs.fields(1));
rs.movenext;
}
rs.close;
connection.close;
我会推荐node-mssql,它是其他连接器的一个很好的包装器,默认是我之前的选择(Tedious),它带来了更好的界面。这是一个 JavaScript 实现,没有编译要求,这意味着您可以在 Windows 和非 Windows 环境中工作。
另一种选择是,如果您不介意引入带有二进制桥的 .Net 或 Mono,则可以使用edge.js。如果您想利用 node.js 中的 .Net 库,这会非常好
node-tds已被废弃,node-odbc不适用于 Windows,MS node-sqlserver驱动程序似乎不适用于非 Windows(并且有一些愚蠢的要求)。
如果您从 linux 连接到 Mssql,您可以将 node-odbc ( https://github.com/w1nk/node-odbc ) 与 freetds odbc 驱动程序一起使用。我在生产中使用它,它比包装 Web 服务更快。
甚至来自微软的另一种选择,
http://www.microsoft.com/en-us/download/details.aspx?id=29995
或通过 odbc 的 linux sql 客户端驱动程序:
http://www.microsoft.com/en-us/download/details.aspx?id=28160
我最近遇到了这个问题,我试图连接托管在远程服务器上的 MSSQL。我必须使用的配置是-
let config = {
user: 'user',
password: 'password',
server: 'server',
database: 'database',
"options":{
instanceName: 'instanceName',
"encrypt":true,
"enableArithAbort":true,
"trustServerCertificate": true,
}
};
module.exports=config;
要获取实例名称,请在 SSMS 中使用 SELECT @@servicename