NodeJS 8.10.0 - Azure(iisnode) - 在严格模式之外尚不支持块范围的声明(let,const,function,class)

问题描述 投票:1回答:2

我在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 App中正常工作(两者之间的配置相同)。要设置NodeJs版本,我在所有Web应用程序中使用WEBSITE_NODE_DEFAULT_VERSION应用程序设置。

我期望这种错误与旧版本的nodejs有关,但与8.10无关。

任何的想法?

node.js azure azure-web-sites mailgun
2个回答
6
投票

我刚刚发现有问题的Web应用程序是使用Microsoft模板“Node JS Empty Web App”创建的。

此模板在Web应用程序的根目录中留下了强制版本4.2.4的iisnode.yml文件,尽管全局使用了8.10.0。

nodeProcessCommandLine: "D:\Program Files (x86)\nodejs\4.2.4\node.exe"

删除iisnode.yml解决了这个问题。


0
投票

如雷耶斯所述。另一种方法是使用版本号nodeProcessCommandLine编辑路径:“D:\ Program Files(x86)\ nodejs \ 8.10.x \ node.exe”

© www.soinside.com 2019 - 2024. All rights reserved.