2017-05-24 2 views
0

Mein Ziel ist ein Attribut isAdmin in meinem users Schema, das ist ein boolescher Wert, standardmäßig auf false, und kann ein echter Wert in einer CURL-Anfrage gesendet werden.Boolescher Wert in einer Curl-Anforderung übergeben

begann ich mit in meinem Schema ab:

isAdmin: { 
    type: Boolean, 
    default: false, 
    required: true 
    } 

und haben eine Arbeits ROTATION Anforderung und die isAdmin gibt false zurück, wie erwartet.

API="http://localhost:4741" 
URL_PATH="/sign-up" 
EMAIL="[email protected]" 
PASSWORD="test" 


curl "${API}${URL_PATH}" \ 
    --include \ 
    --request POST \ 
    --header "Content-Type: application/json" \ 
    --data '{ 
    "credentials": { 
     "email": "'"${EMAIL}"'", 
     "password": "'"${PASSWORD}"'", 
     "password_confirmation": "'"${PASSWORD}"'" 
    } 
    }' 

Ich habe dann versucht, aus dem Standardwert zu übernehmen:

isAdmin: { 
    type: Boolean, 
    required: true 
    } 

..und versuchen T oder F in der CURL Anfrage vorbei und es funktioniert nicht. Der Fehler besagt, dass isAdmin erforderlich ist. Nicht sicher, was mit meiner CURL-Anfrage nicht stimmt.

API="http://localhost:4741" 
URL_PATH="/sign-up" 
EMAIL="[email protected]" 
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}"'" 
    } 
    }' 

Irgendwelche Ideen, was ich falsch mache? Und/Oder wie kann ich einen Standardwert von false und POST einen neuen Benutzer mit einem wahren isAdmin Attribut haben? Vielen Dank im Voraus für jeden Hinweis.

Erläuterung: Verwenden von Mongoose und ExpressAPI.

+0

Was ist das? Ein Bash-Skript? –

+0

@NeilLunn ja ein Shell-Skript – awoodrum87

+1

Ich nehme an, der Server wird den JSON analysieren. Wenn Sie also das JavaScript-Objekt über Ihren bevorzugten JSON-Parser eingegeben haben (Hinweis: Öffnen Sie die Browser-Konsole und verwenden Sie 'JSON.stringify'), wie sieht dann die String-Ausgabe aus? Und dann lassen Sie Ihre Saite natürlich genauso aussehen. –

Antwort

0

Da Sie den Wert in doppelte Anführungszeichen einschließen, wird er eher als Zeichenfolge als als boolescher Wert behandelt. Versuchen Sie dies:

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}"'" 
    } 
    }' 
+0

Hat dies das Problem gelöst? Konnten Sie Ihr Problem anders lösen? – codeforester

Verwandte Themen