添加node.js模块以用于Azure Functions

时间:2018-02-20 21:03:57

标签: node.js azure azure-storage azure-functions

我相信我遇到了与this earlier posting中描述的相同的问题,但是在关注"官方"来自this Microsoft document的说明,当我的Node.js代码尝试作为Azure Functions触发器运行时,我仍然收到以下错误:

2018-02-20T20:53:43.527 [Error] Exception while executing function: Functions.NewMP3FileTrigger. mscorlib: One or more errors occurred. Error: Cannot find module 'azure-storage'
    at Function.Module._resolveFilename (module.js:469:15) 

这是我的代码中的第一行,我相信它是失败的:

var azure = require('azure-storage');

据我所知,添加软件包似乎可以通过以下步骤工作: - 从here获取package.json文件的内容(看起来合法)。 - 使用Azure诊断控制台,将package.json文件放在wwwroot文件夹中。 - 在控制台窗口中运行npm install

它运行了一段时间,完成后,同一个文件夹中有一个非常大的node_modules。我注意到它产生了一些警告,如下面的例子,但不确定这些是否重要:

  

npm WARN弃用minimatch@0.2.14:请更新到minimatch 3.0.2或更高版本以避免RegExp DoS问题

实际上我很惊讶我需要将Microsoft服务的任何模块添加到任何Azure环境,因为我认为它们默认会提供,但是你去了。

1 个答案:

答案 0 :(得分:1)

您不应该从package.json存储库复制azure-storage-node。相反,您的package.json应该简单地引用azure-storage作为依赖,例如

{
  "name": "test",
  "version": "1.0.0",
  "dependencies": {
    "azure-storage": "^2.8.0"
  }
}

npm install后确保node_modules文件夹包含azure-storage

P.S。请务必查看Azure功能的存储绑定,也许您不必直接使用SDK(取决于用例)。