Jestem początkującym Express.js
i jestem zdezorientowany przez te dwa słowa kluczowe: res.end()
ires.send()
.
Czy są takie same czy różne?
Jestem początkującym Express.js
i 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.
express
ale 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.end
używany przez zwykły węzeł, gdzieres.send
jest używany przez ekspresowe framwork