express.urlencoded ve express.json ne işe yarıyor?
Express de POST ile data göndermenin üç temel yöntemi vardır.
- application/x-www-form-urlencoded
- multipart/form-data
- application/json
Bunlar request body’sin egönderilen veri formatlerıdır. Content-Type headerında belirtilir.
**application/x-www-form-urlencoded **
key ve value nun '='
ile ayrıldığı. Ve bu çiftlerinde arasında'&'
olan veri gönderme şeklidir.
Sadece text olan verilerin gönderilmesinde kullanılır.
Eğer GET ile bu yöntemi kullanara veri gönderirsek sitemizde şuna benzer bir görüntü ortaya çıkacaktır;
http://example.com/path/to/page?isim=fatih&soyisim=tuzun&renk=mavi
Expressde bu yöntemle gönderilen body değerlerini yakalamak için express.urlencoded middlewarini kullanır.
app.use(express.urlencoded({extended:false}));
"extended"
ayarı gönderilecek verilin yalnızca string olup, olmadığını belirlememize yarıyor. Bu metod üzerinde string dışında veri göndermek istiyorsak bu ayara true
yapmamız gerekecektir.
multipart/form-data
Dosya gönderiminde kullanılır.
Expressde bu data tipini yakalamak için Multer modülünü kullanırız.
application/json Datanın json veri tipinde gönderimidir. Bu datanın yakalanması için express.json middlewarei kullanılır. Bu usulü kullanmak başlangıç için tavsiye ediliyor.
var express = require('express');
var app = express();
app.use(express.json());
app.post('/', function(request, response){
console.log(request.body); // your JSON
response.send(request.body); // echo the result back
});
app.listen(3000);
Daha fazlası;
- https://dev.to/effingkay/cors-preflighted-requests–options-method-3024
- https://nkhilv.medium.com/what-does-express-urlencoded-do-anyway-8bdc4e638e1e
- https://stackoverflow.com/questions/9870523/what-are-the-differences-between-application-json-and-application-x-www-form-url?rq=1
- https://codex.so/handling-any-post-data-in-express