Sql server 在Azure下使用节点sqlserver或节点mssql

Sql server 在Azure下使用节点sqlserver或节点mssql,sql-server,node.js,azure,node-mssql,Sql Server,Node.js,Azure,Node Mssql,我正在尝试使用节点mssql连接到Azure上的数据库。我的开发系统是Windows7,通过WebMatrix安装NodeSQLServer一点都没有成功 我的问题分为两个部分:第一,是否有任何原因,即使我按照Microsoft的指示操作,也会在节点sqlserver中出错?尝试在WebMatrix中使用NPM的简单方法时,我遇到以下错误: An error occurred. "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\

我正在尝试使用节点mssql连接到Azure上的数据库。我的开发系统是Windows7,通过WebMatrix安装NodeSQLServer一点都没有成功

我的问题分为两个部分:第一,是否有任何原因,即使我按照Microsoft的指示操作,也会在节点sqlserver中出错?尝试在WebMatrix中使用NPM的简单方法时,我遇到以下错误:

An error occurred.

"C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-sqlserver" "--json"


Exit status 1

Failed at the node-sqlserver@0.1.0 install script.
This is most likely a problem with the node-sqlserver package,
not with npm itself.
Tell the author that this fails on your system:
    node-gyp rebuild
You can get their info via:
    npm owner ls node-sqlserver
There is likely additional logging output above.



Failed: npm reported an error.

NodeNpm.NpmException: Failed: npm reported an error.
   at NodeNpm.NpmApi.Install(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.CachingPackageManger.InstallPackage(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.PackageViewModel.Install()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
机器已安装VS2012 Professional

我问题的第二部分是,是否有任何原因说明在Azure下使用节点mssql不起作用?我只是得到一个失败的连接错误,即使我已经多次验证了详细信息(用占位符替换下面的实际值):

我得到以下错误:

An error occurred.

"C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-sqlserver" "--json"


Exit status 1

Failed at the node-sqlserver@0.1.0 install script.
This is most likely a problem with the node-sqlserver package,
not with npm itself.
Tell the author that this fails on your system:
    node-gyp rebuild
You can get their info via:
    npm owner ls node-sqlserver
There is likely additional logging output above.



Failed: npm reported an error.

NodeNpm.NpmException: Failed: npm reported an error.
   at NodeNpm.NpmApi.Install(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.CachingPackageManger.InstallPackage(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.PackageViewModel.Install()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
{“name”:“ConnectionError”,“message”:“到tcp的连接:{server}.database.windows.net:1433>-失败错误:getaddrinfo ENOTFOUND”}


我意识到节点sqlserver是在Azure下实现这一点的最佳方式,但我已经尝试了几天,但都没有成功。有什么明显的遗漏吗?

去年我使用Node.js中的SQL Azure,当时模块名为
Node sqlserver
,所以我的答案可能不起作用

参考您的第一个问题,在NPM安装期间,节点mssql应该需要通过
node gyp
C++
进行编译。所以你最好检查一下是否安装了C++编译器。当我安装时,它告诉我我需要VS2010 C++。不确定您现在是否需要它,或者是否需要任何更高版本。您可以从命令窗口运行
npm安装节点mssql
,如果失败,您应该得到一个日志文件,应该是
npm error.log
或类似的内容

参考您的第二个问题,当我使用这个模块时,我使用连接字符串。您能否再次检查您的用户名是否以
user@server
。还要仔细检查您的SQL Azure防火墙是否已为其他云服务打开。

1)您可以通过从下载预编译的节点sqlserver驱动程序来解决此问题。即使安装了所有的开发依赖项,我也无法在我的机器上编译源代码

2)
节点mssql
模块使用三种不同的驱动程序与sql server通信。您的配置没有指定任何驱动程序,因此使用默认驱动程序-
冗长
。您必须更改配置以使其正常工作:

var config = {
    user: '{username}',
    password: '{password}',
    server: '{server}.database.windows.net', // simply remove "tcp:"
    database: '{database}'
}
还有一个选项可以将
节点mssql
节点sqlserver
一起使用,但要使其正常工作,必须手动安装已编译的
节点sqlserver
驱动程序。配置应如下所示:

var config = {
    driver: 'msnodesql',
    user: '{username}',
    password: '{password}',
    server: 'tcp:{server}.database.windows.net',
    database: '{database}'
}

嗨,Shaun,node sqlserver是微软的官方驱动程序,但我在Azure或IIS 7.5上都没有成功。节点mssql是一个第三方驱动程序,它在IISnode下的iis7.5上非常适合我。我曾尝试使用npm和Microsoft推荐的方法安装node sqlserver。嗨,Patrik,由于本文的介绍,我终于能够编译它,所以它现在可以工作了。