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
