在 Azure Web 应用程序站点上使用 msnodesql 部署节点应用程序失败
Deploying a node app using msnodesql fails on azure Web apps site
我尝试 运行 使用 msnodesql 将 Azure Web 应用程序上的 node.js 代码发送到 Azure SQL 数据库,但它失败了。
我查看了评论(node.js + azure sql database),但还没有生效。
现在我通过站点上的工具 "console" 检查了 Azure 上的节点版本,它显示为 v4.2.3。我了解 msnodesql ( https://www.npmjs.com/package/msnodesql ) 现在支持节点 v0.8 或 v0.6。
我怀疑可能是他们的版本不匹配导致失败。
我在本地 PC 上安装了节点 v4.2.3,然后我可以使用 v0.6 和 v0.8 msnodesql (sqlserver.node) 重现此问题。
有人有解决方法吗?
我找不到降级 Azure node.js.
的方法
(2016/1/20)
感谢@PeterPan,
我终于可以 运行 带有模块 "tedious" 的 Azure 程序了。
非常感谢。
我没试过,但我可以根据 https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/#using-a-custom-version-with-azure-websites 指定 Node.js 版本来使用模块 msnodesql。
但是,我仍然想知道哪种方法更好,Node v4.2.3 有乏味,Node v4.2.3 有 msnodesqlv8(我还不能确定它是否有效),或者 Node v0.8 有 msnodesql/msnodesqlv8.
我想在另一个话题中讨论这个问题。
您可以尝试在项目的 package.json
文件中指定 NodeJS 版本(在 https://your_web_app_name.scm.azurewebsites.net/api/diagnostics/runtime 的 json 列表中),如下所示。
"engines":{"node": "0.6.22 || 0.8.x"}
或者您可以尝试参考Azure官方文档Specifying a Node.js version in an Azure application的Using a custom version with Azure Websites
部分使用自定义版本。
如果你不必使用包 node-sqlserver
,你也可以尝试使用纯 JavaScript 驱动 Tedious
with no dependencies. And you can refer to the doc https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-nodejs-simple-windows/ 来了解如何使用它。
注意:在Azure上,NodeJS的一些模块在安装时编译,通常使用Python和node-gyp,如node-sqlserver
这是一个本机 C 驱动程序,在后台使用 Microsoft ODBC 驱动程序。如果遇到此类问题,可以参考文档 Using Node.js Modules with Azure applications.
的 Native Modules
部分
我尝试 运行 使用 msnodesql 将 Azure Web 应用程序上的 node.js 代码发送到 Azure SQL 数据库,但它失败了。
我查看了评论(node.js + azure sql database),但还没有生效。
现在我通过站点上的工具 "console" 检查了 Azure 上的节点版本,它显示为 v4.2.3。我了解 msnodesql ( https://www.npmjs.com/package/msnodesql ) 现在支持节点 v0.8 或 v0.6。
我怀疑可能是他们的版本不匹配导致失败。 我在本地 PC 上安装了节点 v4.2.3,然后我可以使用 v0.6 和 v0.8 msnodesql (sqlserver.node) 重现此问题。
有人有解决方法吗? 我找不到降级 Azure node.js.
的方法(2016/1/20)
感谢@PeterPan, 我终于可以 运行 带有模块 "tedious" 的 Azure 程序了。 非常感谢。
我没试过,但我可以根据 https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/#using-a-custom-version-with-azure-websites 指定 Node.js 版本来使用模块 msnodesql。
但是,我仍然想知道哪种方法更好,Node v4.2.3 有乏味,Node v4.2.3 有 msnodesqlv8(我还不能确定它是否有效),或者 Node v0.8 有 msnodesql/msnodesqlv8.
我想在另一个话题中讨论这个问题。
您可以尝试在项目的 package.json
文件中指定 NodeJS 版本(在 https://your_web_app_name.scm.azurewebsites.net/api/diagnostics/runtime 的 json 列表中),如下所示。
"engines":{"node": "0.6.22 || 0.8.x"}
或者您可以尝试参考Azure官方文档Specifying a Node.js version in an Azure application的Using a custom version with Azure Websites
部分使用自定义版本。
如果你不必使用包 node-sqlserver
,你也可以尝试使用纯 JavaScript 驱动 Tedious
with no dependencies. And you can refer to the doc https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-nodejs-simple-windows/ 来了解如何使用它。
注意:在Azure上,NodeJS的一些模块在安装时编译,通常使用Python和node-gyp,如node-sqlserver
这是一个本机 C 驱动程序,在后台使用 Microsoft ODBC 驱动程序。如果遇到此类问题,可以参考文档 Using Node.js Modules with Azure applications.
Native Modules
部分