MoonMail / moonmail-models 之间的区别

Diff between MoonMail / moonmail-models

为什么我们可以在 moonmail-models 中找到这段代码:

userId: _joi2.default.string().required(),
body: _joi2.default.string().required(),
subject: _joi2.default.string().required(),
name: _joi2.default.string().required(),
id: _joi2.default.string().required(),
senderId: _joi2.default.string(),
listIds: _joi2.default.array(),
sentAt: _joi2.default.number(),
createdAt: _joi2.default.number(),
scheduledAt: _joi2.default.number(),
status: _joi2.default.string(),
isUpToDate: _joi2.default.boolean(),
template: _joi2.default.string()

但是在 MoonMail 的 s-resources 中没有对应的-cf.json:

"CampaignsTable": {
  "Type": "AWS::DynamoDB::Table",
  "DeletionPolicy": "Retain",
  "Properties": {
    "AttributeDefinitions": [
      {
        "AttributeName": "id",
        "AttributeType": "S"
      },
      {
        "AttributeName": "userId",
        "AttributeType": "S"
      },
      {
        "AttributeName": "sentAt",
        "AttributeType": "N"
      },
      {
        "AttributeName": "scheduledAt",
        "AttributeType": "N"
      }
    ]
    }
}

正文和主题存储在 DynamoDB 中的什么位置?

要查找存储活动数据的代码,请查看此文件https://github.com/microapps/moonmail-models/blob/master/src/models/campaign.js

"Is there a reason we can find this code in moonmail-models?"

是的,这意味着在保存数据之前,它将使用 table

的模式验证您传递给 dynamodb 的数据

" this._validateSchema(架构、活动) && campaign.status === 'draft'; "

来自 api 个控制器的数据被传递到 moonmail 模型,并且每个 table 在

中有一个文件

https://github.com/microapps/moonmail-models/blob/master/src 那些文件扩展的文件夹 Model.js 它处理 URD - DynamoDB 上的更新、读取和删除操作