我尝试使用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。
我想在另一个主题中讨论这个问题。
答案 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 application的Using 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 applications的Native Modules
部分。