gpt4 book ai didi

node.js - 在 AWS Lambda 中找不到模块 'nodemailer'

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:12 26 4
gpt4 key购买 nike

我有一个简单的 Nodejs 代码,可以使用 AWS Lambda 函数和 SES 服务发送测试电子邮件。

我能够将我的函数部署到 AWS,并具有所有适当的访问权限和要求等...

不幸的是,每当我在 AWS Lambda 控制台中测试我的函数时,我都会收到错误“找不到模块‘nodemailer’”,这是我在下面的代码中需要的。

从我的项目结构来看,我似乎已经正确安装了它,也可能没有。

我已经被这个问题困扰好几天了,我在这里做错了什么?顺便说一句,我是 Nodejs 和 AWS 的新手。

提前谢谢您。

注意:我尝试在命令中运行它,它工作正常,我能够收到电子邮件。命令: Node 处理程序.js

项目截图:

Project Structure

Nodejs 代码:

'use strict';

var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
host: 'email-smtp.us-east-1.amazonaws.com',
port: 587,
auth: {
user: 'USER_XXX',
pass: 'PASSWORD_XXX'
}
});

var text = 'Hi,\r\n\r\n'
+ 'This email is a test email!\r\n\r\n'
+ 'This is sent using NodeMailer module in Nodejs thru AWS SES SMTP Host: email-smtp.us-east-1.amazonaws.com.\r\n\r\n'
+ 'Thanks!';

var mailOptions = {
from: 'ses@aws.net',
to: 'me@aws.net',
subject: 'Test Email (NodeMailer & AWS SES)',
text: text
};

module.exports.handler = function(event, context) {
console.log('Email Sending...');
transporter.sendMail(mailOptions, function(error, info){
if(error){
console.log(error);
}else{
console.log('Message sent');
}
});
};

Lambda 测试错误消息:

{
"errorMessage": "Cannot find module 'nodemailer'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:276:25)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)",
"Object.<anonymous> (/var/task/handler.js:2:18)",
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)"
]
}

最佳答案

您需要确保将 nodemailer 作为 package.json 中的依赖项之一。

关于node.js - 在 AWS Lambda 中找不到模块 'nodemailer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com