javascript - FormData boolean alanı?


Form verileri içinde boolean değerlerini kullanmam gerekiyor. Örneğin:

let example = new FormData();
example.append('aBoolean', true);

Bu bir hata verir çünkü yukarıdaki 'true' string formunda olmalıdır. FormData içinde booleanları kullanmanın bir yolunu biliyor musunuz? Alternatif olarak, bunu aldığımda değeri boolean olarak dönüştürmenin bir yolu da:

example.get("aBoolean")

Yukarıdaki örnekte doğruyu bir string olarak sakladığımı varsayarsak.

Cevap #1

Eh, Boolean değerini FormData append metoduna ekleyemezsiniz. Sadece izin verilen veri tipleri USVString, Blob.'dır.

Bunu mdn dokümantasyonundan daha fazla okuyun

https://developer.mozilla.org/en-US/docs/Web/API/FormData/append

https://developer.mozilla.org/en-US/docs/Web/API/USVString

Cevap #2

Benim için daha basit bir çözüm, verileri JSON formatına dönüştürmek ve bunu formData içindeki bir alana atamaktı:

Ön uç

const formData = new FormData();
formData.append('data', JSON.stringify({ myBool: false, myNumber: 8 }));

Arka uç (NodeJs)

const parsedData = JSON.parse(req.body.data);
console.log(typeof parsedData.myBool === 'boolean'); // => true
console.log(typeof parsedData.myNumber === 'number'); // => true

Bu açıkça boolean, null ve sayı türleriyle çalışır

İlgili makaleler