【发布时间】:2019-12-04 13:27:52
【问题描述】:
我有一个使用 WebSocket 库 (ws) 的节点应用程序,并且我能够在本地计算机上运行此应用程序。
但是,当我将其发布到 Azure 应用服务时,我收到相同代码的以下错误。
我已经检查过两者都运行相同版本的节点 12.13.0,我已经完成 npm install 并且包看起来是相同的(无论如何发布时它们也包含在内)。下面的错误实际上是在抱怨来自ws 模块的文件。
触发此错误的代码行是:var WebSocket = require('ws');
Wed Dec 04 2019 13:03:04 GMT+0000 (Coordinated Universal Time): Application has thrown an uncaught exception and is terminated:
SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (D:\home\site\wwwroot\node_modules\ws\index.js:3:19)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
Application has thrown an uncaught exception and is terminated:
SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (D:\home\site\wwwroot\node_modules\ws\index.js:3:19)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
【问题讨论】:
-
请发布您的代码/努力,以便我们为您提供帮助。
-
@PrabhjotSinghKainth 我添加了导致错误的代码。我不知道是什么原因造成的,所以没有尝试任何方法。我确保节点版本相同并且安装了软件包。
-
您是否使用 Azure 中的“使用节点”步骤设置了节点版本?只是要求 100% 在本地和服务器上拥有相同的节点版本
-
@WojciechDynus 我已经通过在应用程序设置中添加
WEBSITE_NODE_DEFAULT_VERSION键来设置节点版本,使其与本地计算机上的相同,并且当我在控制台和kudu 控制台上运行node -v时它确实如此返回正确的版本。 As it show described in this post.。如果“使用节点”步骤是指在创建新资源时,那么我从在 ASP.NET 上运行的 express 模板创建了一个。我需要启用网络套接字,并且节点堆栈网络应用程序中没有该选项。
标签: javascript node.js azure azure-web-app-service azure-webapps