我的目标是在我的isAdmin
架构中有一个属性users
,它是一个布尔值,默认为false,并且可以在CURL请求中发送一个真值。
我在我的架构中开始使用它:
isAdmin: {
type: Boolean,
default: false,
required: true
}
并且有一个正常的CURL请求,并且isAdmin按预期返回false。
API="http://localhost:4741"
URL_PATH="/sign-up"
EMAIL="a2@admin.com"
PASSWORD="test"
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'
然后我尝试取出默认值:
isAdmin: {
type: Boolean,
required: true
}
..并尝试在CURL请求中传递T或F并且它不起作用。该错误表示isAdmin
是必需的。不确定我的CURL请求有什么问题。
API="http://localhost:4741"
URL_PATH="/sign-up"
EMAIL="a2@admin.com"
PASSWORD="test"
ADMIN="True"
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"isAdmin": "'"${ADMIN}"'",
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'
关于我做错了什么的任何想法?和/或我如何将默认值设为false并POST一个具有真isAdmin
属性的新用户?提前感谢您的任何建议。
澄清:使用Mongoose和ExpressAPI。
答案 0 :(得分:0)
由于您将值括在双引号中,因此它似乎被视为字符串,而不是布尔值。试试这个:
ADMIN=true # may be it is safer to use all lowercase for true/false
curl "${API}${URL_PATH}" \
--include \
--request POST \
--header "Content-Type: application/json" \
--data '{
"credentials": {
"email": "'"${EMAIL}"'",
"isAdmin": '${ADMIN}',
"password": "'"${PASSWORD}"'",
"password_confirmation": "'"${PASSWORD}"'"
}
}'