Nodejs:错误:找不到模块“@aws-sdk/client-ses”

问题描述 投票:0回答:1

在 Ubuntu 22.04.4 机器上启动 Nodejs 应用程序时,我遇到了这个问题:

back-app-1  | [1] 2024-04-25T09:20:57.938Z error    Error: Cannot find module '@aws-sdk/client-ses'
back-app-1  | [1] Require stack:
back-app-1  | [1] - /usr/src/app/app/services/send-mail.js
back-app-1  | [1] - /usr/src/app/app/api/authentication/authentication.controller.js
back-app-1  | [1] - /usr/src/app/app/api/authentication/authentication.routes.js
back-app-1  | [1] - /usr/src/app/app/api/router.js
back-app-1  | [1] - /usr/src/app/app/express.js
back-app-1  | [1] - /usr/src/app/app/server.js
back-app-1  | [1] - /usr/src/app/bin/www
back-app-1  | [1]     at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
back-app-1  | [1]     at Module._load (node:internal/modules/cjs/loader:981:27)
back-app-1  | [1]     at Module.require (node:internal/modules/cjs/loader:1231:19)
back-app-1  | [1]     at require (node:internal/modules/helpers:177:18)
back-app-1  | [1]     at Object.<anonymous> (/usr/src/app/app/services/send-mail.js:2:13)
back-app-1  | [1]     at Module._compile (node:internal/modules/cjs/loader:1364:14)
back-app-1  | [1]     at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
back-app-1  | [1]     at Module.load (node:internal/modules/cjs/loader:1203:32)
back-app-1  | [1]     at Module._load (node:internal/modules/cjs/loader:1019:12)
back-app-1  | [1]     at Module.require (node:internal/modules/cjs/loader:1231:19)
back-app-1  | [1]     at require (node:internal/modules/helpers:177:18)
back-app-1  | [1]     at Object.<anonymous> (/usr/src/app/app/api/authentication/authentication.controller.js:7:22)
back-app-1  | [1]     at Module._compile (node:internal/modules/cjs/loader:1364:14)
back-app-1  | [1]     at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
back-app-1  | [1]     at Module.load (node:internal/modules/cjs/loader:1203:32)
back-app-1  | [1]     at Module._load (node:internal/modules/cjs/loader:1019:12)
back-app-1  | [1]     at Module.require (node:internal/modules/cjs/loader:1231:19)
back-app-1  | [1]     at require (node:internal/modules/helpers:177:18)
back-app-1  | [1]     at Object.<anonymous> (/usr/src/app/app/api/authentication/authentication.routes.js:4:20)
back-app-1  | [1]     at Module._compile (node:internal/modules/cjs/loader:1364:14)
back-app-1  | [1]     at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
back-app-1  | [1]     at Module.load (node:internal/modules/cjs/loader:1203:32)

这是使用它的文件的标题:

const nodemailer = require('nodemailer');
const aws = require("@aws-sdk/client-ses");
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
const SEND_MAIL = Symbol('SEND_MAIL');
const ses = new aws.SES({
  apiVersion: "2010-12-01",
  region: "eu-west-3",
  defaultProvider,
});

我能做些什么来解决这个问题吗?

更多:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html
https://nodemailer.com/transports/ses/
节点:

v20.5.1

npm:
10.5.2

node.js amazon-web-services nodemailer npm-package
1个回答
0
投票

您可以通过运行命令npm i aws-sdk直接安装aws-sdk,然后就可以配置SES。

建议:-您可以直接使用aws-sdk发送邮件,而无需使用smtp,因为它提供了多个发送邮件的api。

我使用 aws-sdk API 发送邮件而不是 SMTP。这是适合我的代码。

var AWS = require("aws-sdk");
AWS.config.update({ region: "your-aws-region" });
var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
.sendTemplatedEmail(params)
.promise();

在您的情况下,您可以安装 aws-sdk 并且可以轻松配置 ses。

  const nodemailer = require('nodemailer');
  const aws = require("aws-sdk");
  const { defaultProvider } = require("@aws-sdk/credential-provider- 
  node");
  const SEND_MAIL = Symbol('SEND_MAIL');
  const ses = new aws.SES({
    apiVersion: "2010-12-01",
    region: "eu-west-3",
    defaultProvider,
  });
© www.soinside.com 2019 - 2024. All rights reserved.