Ben yeni başlayan biriyim Express.jsve şu iki anahtar kelime ile karıştırıyorum: res.end()ve res.send().
Aynı mı yoksa farklı mı?
Ben yeni başlayan biriyim Express.jsve şu iki anahtar kelime ile karıştırıyorum: res.end()ve res.send().
Aynı mı yoksa farklı mı?
Yanıtlar:
res.send()HTTP yanıtını gönderir. Sözdizimi,
res.send([body])
Body parametresi bir Buffer nesnesi, bir String, bir nesne veya Array olabilir. Örneğin:
res.send(new Buffer('whoop'));
res.send({ some: 'json' });
res.send('<p>some html</p>');
res.status(404).send('Sorry, we cannot find that!');
res.status(500).send({ error: 'something blew up' });
Bkz bu daha fazla bilgi için.
res.end()yanıt verme sürecini sonlandıracaktır. Bu yöntem, gerçekten düğüm çekirdek, özellikle de gelen response.end()metodu http.ServerResponse. Herhangi bir veri olmadan yanıtı hızla bitirmek için kullanılır. Örneğin:
res.end();
res.status(404).end();
Daha fazla bilgi için bunu okuyun .
expressama başlıktan düşündüm - bir şey gönderir, biri bir şeyi bitirir .... 'twas doğru.
res.send()hiçbir şey kullanmazsan . Bu gibi res.end()mi davranıyor ?
Ben arasında bazı temel farklar hakkında biraz daha vurgu yapmak istiyorum res.end()& res.send()yanıt başlıkları açısından ve neden önemli olduklarını ile.
1. res.send (), çıktınızın yapısını kontrol eder ve başlık bilgisini buna göre ayarlar.
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
app.get('/',(req,res)=>{
res.send({msg:'hello'});
});
Res.end () ile yalnızca metinle yanıt verebilirsiniz ve " İçerik Türü " ayarlanmaz
app.get('/',(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send (), yanıt başlığında "ETag" özelliğini ayarlayacaktır
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
Tag Bu etiket neden önemlidir?
ETag HTTP yanıt başlığı, bir kaynağın belirli bir sürümü için tanımlayıcıdır. Bir web sunucusunun içerik değişmediyse tam yanıt göndermesi gerekmediğinden önbelleklerin daha verimli olmasını sağlar ve bant genişliğinden tasarruf sağlar.
res.end() bu başlık niteliğini ayarlamayacak
res.send () 'in yaptığı şey, res.write , res.setHeaders ve res.end' i uygulamaktır .
ne veri gönderdiğinizi kontrol eder ve doğru başlıkları ayarlar,
daha sonra verileri res.write ile aktarır ve sonunda isteğin sonunu ayarlamak için res.end kullanır.
manuel olarak yapmak isteyebileceğiniz bazı durumlar vardır, örneğin dosya veya büyük bir veri kümesi istiyorsanız, bu durumda başlıkları kendiniz ayarlayıp res.write komutunu kullanmak istersiniz. akar.
res.endolarak nerede düz düğüm tarafından kullanılanres.sendekspres framwork tarafından kullanılır