Azure / Node.js未捕获异常:错误:无法找到模块' ms'

时间:2015-07-29 12:36:42

标签: node.js azure visual-studio-2015

我已经部署了一个小型node.js应用程序,该应用程序使用Azure发布选项(右键单击 - 发布 - 天蓝色配置文件等)在Visual Studio 2015中本地运行到Azure。 但是,当我访问该网站时,我在页面上显示的是:

  

由于内部服务器错误,页面无法显示   发生。

如果我将VS服务器资源管理器连接到Azure实例以查看日志,则在logging-errors.txt内部我可以看到以下记录很多次:

Wed Jul 29 2015 12:22:36 GMT+0000 (Coordinated Universal Time): Unaught exception: Error: Cannot find module 'ms'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (D:\home\site\wwwroot\node_modules\debug\debug.js:14:20)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

这是通过预览门户网站配置的全新网络应用。

我的项目依赖项或node_modules文件夹中没有定义'ms'包,所以我假设这是在Azure上托管所需的Microsoft / Azure特定包。

我是否错过了“准备”Azure节点应用程序的步骤,还是需要执行其他一些配置步骤?

由于

2 个答案:

答案 0 :(得分:1)

看起来它在加载模块时遇到了问题。你有一个定义依赖关系的package.json文件吗? Azure部署站点时运行的默认部署脚本将查找package.json并执行failed: [myserver] => {"dest": "/home/jdoe/somefile.tar.gz", "failed": true, "response": "HTTP Error 403: Forbidden", "state": "absent", "status_code": 403, "url": "http://myserver/somefile.tar.gz"} msg: Request failed FATAL: all hosts have already failed -- aborting 。这意味着它将安装您在“依赖项”中定义的所有内容,但不会安装您定义为“devDependencies”的软件包。

答案 1 :(得分:0)

要调试部署到Azure且无法启动的节点应用程序,请执行以下操作:

  • 在scm上打开Powershell(https://.scm.azurewebsites.net/DebugConsole/?shell = powershell)
  • 检查您的节点设置是否正确node --version
  • 尝试启动它并查看错误node .\server.js(或您的package.json > start脚本中指定的错误。)

如果您能在Azure启动应用程序时看到这样的日志,那就太好了。但是我还没有找到。