我如何在 NodeJS Azure Functions 中使用包管理?
How can i use package management in NodeJS Azure Functions?
我正在尝试将此示例项目构建为 Azure 函数,它需要一些包 https://github.com/OfficeDev/O365-Nodejs-Microsoft-Graph-App-only
我可以看到我可以使用 https://azure.microsoft.com/en-us/documentation/articles/functions-reference/#nodejavascript-api
在 NodeJS Azure Functions 中使用数据包管理
我试过用这个
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 函数使用的那样:
{
"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).
project.json 应该工作吗?
您可以将 package.json
和 运行 npm install
包含在您的函数目录中,就像通常使用 Kudu 或 Azure 门户中的控制台对 Node.js 项目所做的那样。
我做了类似的事情,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);
}
});
};
我正在尝试将此示例项目构建为 Azure 函数,它需要一些包 https://github.com/OfficeDev/O365-Nodejs-Microsoft-Graph-App-only
我可以看到我可以使用 https://azure.microsoft.com/en-us/documentation/articles/functions-reference/#nodejavascript-api
在 NodeJS Azure Functions 中使用数据包管理我试过用这个
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 函数使用的那样:
{
"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).
project.json 应该工作吗?
您可以将 package.json
和 运行 npm install
包含在您的函数目录中,就像通常使用 Kudu 或 Azure 门户中的控制台对 Node.js 项目所做的那样。
我做了类似的事情,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);
}
});
};