Sql server 在Azure下使用节点sqlserver或节点mssql
我正在尝试使用节点mssql连接到Azure上的数据库。我的开发系统是Windows7,通过WebMatrix安装NodeSQLServer一点都没有成功 我的问题分为两个部分:第一,是否有任何原因,即使我按照Microsoft的指示操作,也会在节点sqlserver中出错?尝试在WebMatrix中使用NPM的简单方法时,我遇到以下错误: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\\
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,由于本文的介绍,我终于能够编译它,所以它现在可以工作了。