当前位置: 首页 > 知识库问答 >
问题:

如何在NodeJS Azure Functions中使用包管理?

花玄裳
2023-03-14

我正在尝试将这个示例项目构建为Azure函数,它需要一些包https://github.com/OfficeDev/O365-Nodejs-Microsoft-Graph-App-only

我可以看到,我可以在NodeJS Azure函数中使用数据包管理https://azure.microsoft.com/en-us/documentation/articles/functions-reference/#nodejavascript-api

我试着用这个

var request = require('request');

这句话

You can include packages in your function directory (i.e. via npm install) and then import them to your function in the usual ways (i.e. via require('packagename'))

所以我创建了一个project.json,就像C#Azure Function使用的那样:

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "chalk": "^1.1.1",
        "q": "^1.4.1",
        "request": "^2.67.0"
      }
    }
  }
}

然后得到这个错误

2016-04-06T19:49:42.026 Exception while executing function: Functions.MicrosoftGraphWebHookNode. mscorlib: One or more errors occurred. Error: Cannot find module 'request'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (D:\home\site\wwwroot\MicrosoftGraphWebHookNode\index.js:1:77)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17).

我们应该支持这个项目。工作吗?

共有2个答案

漆雕奇逸
2023-03-14

我做了类似的事情,SMTP在不使用SendGrid的情况下工作。下面是我的azure函数代码。

const nodemailer = require('nodemailer');
module.exports = async function (context, myTimer) {

let transport = nodemailer.createTransport({
    host: '',
    port: 2525,
    auth: {
       user: '',
       pass: ''
    }
});


const message = {
    from: '', // Sender address
    to: '',         // List of recipients
    subject: '', // Subject line
    text: '' // Plain text body
};

transport.sendMail(message, function(err, info) {
    if (err) {
      console.log(err)
    } else {
      console.log(info);
    }
});

};
洪高阳
2023-03-14

可以将package.json包含在函数目录中,并像通常使用Azure门户中的Kudu或控制台的Node.js项目一样运行npm安装

更多信息可以在这里找到:https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node?tabs=v2#dependency-management

 类似资料:
  • 问题内容: 在Linux终端中,当一个命令的输出太长而无法在一页中读取时,我可以这样做: 这样我就可以读取cat文件的输出并上下滚动。 如何在IPython中执行此操作? 例如,我尝试了一下,但没有成功: 我最初的问题是通过Shift + Page Up不能看到来自的输出,并且我不想更改滚动缓冲区。 问题答案: 在IPython中,您可以使用标准的寻呼机(通常是)来显示对象。另外,您可以增加终端的

  • 我正在尝试在我的项目中集成swift软件包管理器,但没有成功。iOS模拟器在启动时崩溃。 下面是我为了集成包管理器而遵循的步骤: 打开xcode并创建新的XcodeProject: 我从终端运行了以下命令: 创建package.swift文件 -一切似乎正常 null 你能帮我解决这个问题吗?

  • 问题内容: 关于一个主题,人们可以使用新语言Swift轻松查看如何在Web视图中管理Cookie呢?如果您在Internet上签到,则在需要实现此功能时不会发现任何有趣的东西。甚至苹果公司的文件也很差。 有人知道如何在Swift中处理这些过程吗?这是我在Obj-C中找到的: 查看存储的Cookie 删除存储的Cookie 如果我们能给出一次答案的话,对每个人都很好!干杯! 问题答案: 试试这个代码

  • 问题内容: 因此,我使用tkinter库制作了一个rss阅读器,并用一种​​方法创建了一个文本小部件。在我尝试向其中添加滚动条之前,它显示得很好。 这是滚动条之前的代码: 这是我的代码之后: 这给我错误 _tkinter.TclError:无法在.56155888内部使用几何管理器包,该软件包已经在vertscroll.pack(side =“ right”,fill =“ y”,expand =

  • 问题内容: 一个最近的问题在这里SO让我思考。 在我尝试过的大多数Linux发行版中,某些Perl模块可以通过软件包管理器获得。其他人当然不会。在相当长的一段时间里,每当我需要安装一些CPAN模块来查找某个软件包是否可用并在安装该软件包时都将使用我的软件包管理器。 明显的好处是,只要有新版本的软件包可用,您就可以更新模块。 但是,当模块无法以预打包的形式提供并且该模块存在依赖项时,您会遇到麻烦。每

  • 问题内容: 删除了对ModelAdmin方法上allow_tags属性的支持。 问题答案: 刚找到答案,使用功能。 在旧代码中,您可以使用: 在新代码中,应使用: