使用msnodesql部署节点应用程序在azure Web应用程序站点上失败

时间:2016-01-17 13:47:27

标签: node.js azure node-sqlserver

我尝试使用msnodesql到Azure SQL数据库在Azure Web应用程序上运行node.js代码,但它失败了。

我查看了评论(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。

的方法

(二零一六年一月二十零日)

感谢@PeterPan, 我可以使用模块运行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。

我想在另一个主题中讨论这个问题。

1 个答案:

答案 0 :(得分:0)

您可以尝试在项目的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 applicationUsing a custom version with Azure Websites部分以使用自定义版本。

如果您不必使用包node-sqlserver,您也可以尝试使用纯JavaScript驱动程序Tedious而不依赖。您可以参考文档https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-nodejs-simple-windows/来了解如何使用它。

注意:在Azure上,NodeJS的某些模块在安装时编译,通常使用Python和node-gyp,如node-sqlserver,它是使用Microsoft ODBC的本机C驱动程序引擎盖下的司机。如果您遇到此类问题,可以参阅文档Using Node.js Modules with Azure applicationsNative Modules部分。