NodeJS 8.10.0 - Azure (iisnode) - 块范围声明(let、const、函数、class)在严格模式之外尚不支持
NodeJS 8.10.0 - Azure (iisnode) - Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
我在 Microsoft Azure 中托管 NodeJs Web 应用程序,但收到以下错误:
Sun Mar 25 2018 01:32:14 GMT+0000 (Coordinated Universal Time): Application has thrown an uncaught exception and is terminated: SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
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\server\helpers\email.js:1:77)
at Module._compile (module.js:409:26)
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\server\controllers\email.js:2:13)
at Module._compile (module.js:409:26)
在错误行:
var Mailgun = require('mailgun-js');
同一个应用程序在另一个 Azure Web 应用程序中正常工作(两者之间的配置相同)。
要设置我在所有 Web 应用程序中使用的 NodeJs 版本 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置。
我预计旧版本的 nodejs 会出现这种错误,但 8.10 不会。
有什么想法吗?
我刚刚发现有问题的 Web 应用程序是使用 Microsoft 模板创建的 "Node JS Empty Web App"。
此模板在 Web 应用程序的根目录中留下了 iisnode.yml 强制使用版本 4.2.4 的文件,尽管在全球范围内使用的是 8.10.0.
nodeProcessCommandLine: "D:\Program Files (x86)\nodejs.2.4\node.exe"
删除 iisnode.yml 解决了问题。
正如redeyes所说。
另一种方法是使用版本号编辑路径
nodeProcessCommandLine:"D:\Program Files (x86)\nodejs.10.x\node.exe"
我在 Microsoft Azure 中托管 NodeJs Web 应用程序,但收到以下错误:
Sun Mar 25 2018 01:32:14 GMT+0000 (Coordinated Universal Time): Application has thrown an uncaught exception and is terminated: SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
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\server\helpers\email.js:1:77)
at Module._compile (module.js:409:26)
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\server\controllers\email.js:2:13)
at Module._compile (module.js:409:26)
在错误行:
var Mailgun = require('mailgun-js');
同一个应用程序在另一个 Azure Web 应用程序中正常工作(两者之间的配置相同)。 要设置我在所有 Web 应用程序中使用的 NodeJs 版本 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置。
我预计旧版本的 nodejs 会出现这种错误,但 8.10 不会。
有什么想法吗?
我刚刚发现有问题的 Web 应用程序是使用 Microsoft 模板创建的 "Node JS Empty Web App"。
此模板在 Web 应用程序的根目录中留下了 iisnode.yml 强制使用版本 4.2.4 的文件,尽管在全球范围内使用的是 8.10.0.
nodeProcessCommandLine: "D:\Program Files (x86)\nodejs.2.4\node.exe"
删除 iisnode.yml 解决了问题。
正如redeyes所说。 另一种方法是使用版本号编辑路径 nodeProcessCommandLine:"D:\Program Files (x86)\nodejs.10.x\node.exe"