Jestem początkującym Express.jsi jestem zdezorientowany przez te dwa słowa kluczowe: res.end()ires.send() .
Czy są takie same czy różne?
Jestem początkującym Express.jsi jestem zdezorientowany przez te dwa słowa kluczowe: res.end()ires.send() .
Czy są takie same czy różne?
Odpowiedzi:
res.send()wyśle odpowiedź HTTP. Jego składnia to:
res.send([body])
Parametr body może być obiektem Buffer, String, obiektem lub Array. Na przykład:
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' });
Zobacz to, aby uzyskać więcej informacji.
res.end()zakończy proces odpowiedzi. Ta metoda w rzeczywistości pochodzi z rdzenia Node, a konkretnie z response.end()metody http.ServerResponse. Służy do szybkiego zakończenia odpowiedzi bez żadnych danych. Na przykład:
res.end();
res.status(404).end();
Przeczytaj to, aby uzyskać więcej informacji.
expressale z tytułu myśli - ktoś coś wysyła, coś kończy ... To było dobrze.
res.send()niczego. Czy to działa res.end()?
Chciałbym położyć większy nacisk na kilka kluczowych różnic między nagłówkami odpowiedzi res.end()i res.send()w odniesieniu do nich oraz dlaczego są one ważne.
1. res.send () sprawdzi strukturę twojego wyjścia i odpowiednio ustawi informacje w nagłówku.
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
app.get('/',(req,res)=>{
res.send({msg:'hello'});
});
Gdzie za pomocą res.end () możesz odpowiedzieć tylko tekstem i nie ustawi to " Content-Type "
app.get('/',(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send () ustawi atrybut „ETag” w nagłówku odpowiedzi
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
¿Dlaczego ten tag jest ważny?
Nagłówek odpowiedzi HTTP ETag jest identyfikatorem określonej wersji zasobu. Pozwala na bardziej wydajne buforowanie i oszczędza przepustowość, ponieważ serwer WWW nie musi wysyłać pełnej odpowiedzi, jeśli zawartość nie uległa zmianie.
res.end() NIE ustawi tego atrybutu nagłówka
co robi res.send (), to zaimplementowanie res.write , res.setHeaders i res.end .
sprawdza jakie dane wysyłasz i ustawia prawidłowe nagłówki,
następnie przesyła strumieniowo dane za pomocą res.write, a na końcu używa res.end do ustawienia końca żądania.
są przypadki, w których będziesz chciał to zrobić ręcznie, na przykład jeśli chcesz przesłać plik strumieniowy lub duży zestaw danych, w takich przypadkach będziesz chciał ustawić nagłówki samodzielnie i użyć res.write, aby zachować strumień pływ.
res.endużywany przez zwykły węzeł, gdzieres.sendjest używany przez ekspresowe framwork