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
我应该注意的一个警告是,一旦我开始输入具有不止一种特征或不止一种含义的内容,我不确定它的效果如何,因为我还没有测试这些部分。我怀疑我仍然需要调整一些东西以使其在这些情况下工作。但它在我的示例中有效,意义数组中只有一个特征和一个对象。
我是编码新手,所以如果我使用了错误的术语或不清楚,我深表歉意。我有一个包含 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
我应该注意的一个警告是,一旦我开始输入具有不止一种特征或不止一种含义的内容,我不确定它的效果如何,因为我还没有测试这些部分。我怀疑我仍然需要调整一些东西以使其在这些情况下工作。但它在我的示例中有效,意义数组中只有一个特征和一个对象。