Postman POST 请求中的变量有问题

Trouble with variable in Postman POST request

我是编码新手,所以如果我使用了错误的术语或不清楚,我深表歉意。我有一个包含 400 多个单词的列表,我需要将这些单词输入到我的数据库中。我发现 this 集合循环遍历我的数据并将其 post 到数据库。除了这一部分(含义部分),它是一个对象数组,我基本上能够让它工作。如果有所不同,这是针对 React 项目并使用 MongoDB 作为数据库。

每个词看起来像这样:

{
  "text": "happy",
  "traits": [
    "wordlist100"
  ],
  "meanings": [
    {
      "meaning": "happy",
      "category": "default"
    }
  ],
  "approved": true,
  "createdby": "60dcd7ba69b1e52ac8138051",
  "approvedBy": "60dcd7ba69b1e52ac8138051",
  "lastUserEdit": "60dcd7ba69b1e52ac8138051",
  "blocked": false
}

其中每个单词可以具有多个特征和多个含义。

我在 JSON 文件中有所有单词,并且 运行 使用上面链接的集合通过 Postman 将其保存。这是我在 Postman 中的请求正文:

{
    "text": "{{text}}",
    "traits": [
        "{{traits}}"
    ],
    "meanings": [
        {
            "meaning": "{{meaning}}",
            "category": "{{category}}"
        }
    ],
    "approved": true,
    "createdby": "60dcd7ba69b1e52ac8138051",
    "approvedBy": "60dcd7ba69b1e52ac8138051",
    "lastUserEdit": "60dcd7ba69b1e52ac8138051",
    "blocked": false
}

使用它,除了单词的含义和类别之外,我的数据库中的所有内容都正确无误。这是 MongoDB 中显示的内容:

{
  "_id": {"$oid": "6121bd6addff936ba4eb84bf"},
  "traits": [
    "wordlist100"
  ],
  "text": "happy",
  "meanings": [
    {
      "_id": {"$oid": "6121bd6addff936ba4eb84c0"},
      "meaning": "{{meaning}}",
      "category": "{{category}}"
    }
  ],
  "approved": true,
  "createdBy": {"$oid": "60dcd7ba69b1e52ac8138051"},
  "approvedBy": {"$oid": "60dcd7ba69b1e52ac8138051"},
  "lastUserEdit": {"$oid": "60dcd7ba69b1e52ac8138051"},
  "blocked": false,
  "createdAt": {"$date": "2021-08-22T02:58:50.679Z"},
  "updatedAt": {"$date": "2021-08-22T02:58:50.679Z"},
  "__v": 0
}

我在单词的含义部分做错了什么?我尝试使用括号的几种组合来设置含义部分。

我试过了:

"meanings": [
    "{{meanings}}"
]

...但这根本不起作用。我尝试的大部分操作都创建了一个错误,该错误完全停止了 运行 的集合(这可能是错误的语法,正如我所说,我真的很新)。这是唯一让我接近正确的安排。任何帮助将不胜感激。

谢谢!!

附上 Postman 代码的图片并创建了 MongoDB 文档,如果使用该格式可以更方便地查看它的话:

Image of Postman code

Image of MongoDB document created

所以我觉得自己很愚蠢,这恰恰表明我对这一切是多么陌生。当我发布这个问题时,我所做的只是尝试复制我在我找到的示例正文中看到的样式(在我的问题中链接),但没有做任何实际定义变量或触摸 pre -请求脚本,因为我没有意识到这是一个单独的步骤。所以基本上,我很幸运,它足够聪明,无需我将它们定义为变量就可以计算出其他值。

如果有人稍后阅读这篇文章,这里有 3 页文档帮助我找出我的错误:Using Variables, Importing Data Files, and Scripting in Postman

通过阅读这些内容,我在预请求脚本中添加了以下代码:

let meanings = pm.iterationData.get("meanings");
pm.variables.set("meaning", meanings[0].meaning);
pm.variables.set("category", meanings[0].category);

我还将“meaning”和“category”设置为集合中没有初始值的命名变量。

Image of adding variables to the Postman collection

我应该注意的一个警告是,一旦我开始输入具有不止一种特征或不止一种含义的内容,我不确定它的效果如何,因为我还没有测试这些部分。我怀疑我仍然需要调整一些东西以使其在这些情况下工作。但它在我的示例中有效,意义数组中只有一个特征和一个对象。