首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入完整的aws-sdk是否有效

导入完整的aws-sdk是否有效
EN

Stack Overflow用户
提问于 2021-05-16 15:46:40
回答 1查看 52关注 0票数 1

我正在使用AWS SES服务发送电子邮件通知。下面是相应的js文件,负责使用模板发送自定义电子邮件。

代码语言:javascript
复制
const AWS = require('aws-sdk');
const { models } = require('../api/sequelize');

let destination = '';
let questionId = '';
let userId = '';
let answerId = '';
let answerBy = '';
let questionBy = '';

class AnswerNotifcation {
  constructor(qId, uId, aId) {
    questionId = qId;
    userId = uId;
    answerId = aId;
  }

  async notification() {
    try {
      const answerByDetail = await models.answer.findByPk(answerId, {
        include: [{
          model: models.user,
          attributes: ['fullName', 'userName', 'userId', 'email'],
        }]
      });

      const questionByDetail = await models.question.findByPk(questionId, {
        include: [{
          model: models.user,
          attributes: ['fullName', 'userName', 'userId', 'email'],
        }]
      });

      const notification = models.notification.create({
        userId: questionByDetail.userId,
        senderUserId: answerByDetail.userId,
        message: 'Answered your question',
        redirectLink: `/q/${questionByDetail.slug}#${answerByDetail.answerId}`,
        isRead: 'false',
        type: 'answers',
        isHidden: 'false'
      })

      destination = questionByDetail.user.email;
      answerBy = answerByDetail.user.fullName;
      questionBy = questionByDetail.user.fullName;

      this.sendNotification(destination, answerBy, questionBy)

    } catch (err) {
      console.log('\n\tError sending email notification \n\t', err);
    }
  }

  sendNotification(dest, aBy, qBy) {
    AWS.config.update({
      region: "us-east-1"
    });
    this.ses = new AWS.SES({ apiVersion: "2010-12-01" });
    this.params = {
      "Source": "no-reply@testing.com",
      "Template": "Answer_Template",
      "ConfigurationSetName": "testConfig",
      "Destination": {
        "ToAddresses": [dest]
      },
      "TemplateData": `{\"receiverName\":\"${qBy}\",\"senderName\":\"${aBy}\", \"description\":\"Answered Your Question\"}`
    }
    console.log("Sending notification for answer");
    this.ses.sendTemplatedEmail(this.params, (err, data) => {
      if (err) console.log(err, err.stack);
      else console.log(data);
    });
  }
}
module.exports = AnswerNotifcation;

我的问题是,导入完整的aws-sdk而不是导入我们只需要的包(在上面的代码中是我使用的AWS.configAWS.SES ),这是一个好方法吗?

这是导入完整的aws-sdk还是只导入我们正在使用的服务(如import { <ServiceName> } from 'aws-sdk' )的有效方法

EN

回答 1

Stack Overflow用户

发布于 2021-05-17 00:30:27

更好的做法是只加载您将要使用的AWS SDK。例如,如果要使用S3,则使用:

代码语言:javascript
复制
const {S3} = require('@aws-sdk/client-s3');

有关详细信息,请参阅AWS JavaScript DEV Guide

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67554220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档