2015-04-10 14 views

Trả lời

54

res.send() sẽ gửi phản hồi HTTP. Cú pháp của nó là,

res.send([body]) 

Tham số cơ thể có thể là đối tượng đệm, chuỗi, đối tượng hoặc mảng. Ví dụ:

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' }); 

Xem this để biết thêm thông tin.

res.end() sẽ kết thúc quá trình phản hồi. Phương thức này thực sự xuất phát từ lõi Node, cụ thể là phương thức response.end() của http.ServerResponse. Nó được sử dụng để nhanh chóng kết thúc phản hồi mà không có bất kỳ dữ liệu nào. Ví dụ:

res.end(); 
res.status(404).end(); 

Đọc this để biết thêm thông tin.

+29

Nhưng res.end thực sự có thể hoạt động như res.send, trong đó bạn có thể chuyển đối số chuỗi để thêm làm nội dung phản hồi. Ngày đầu đó, res.send cũng kết thúc phản hồi. Vậy chúng khác nhau về mặt chức năng như thế nào? – saltthehash

+16

@ psytech140 Jmar77 có một phản ứng tốt đẹp [ở đây] (http://stackoverflow.com/a/22774872/5177017): "Nếu bạn chuyển một chuỗi để res.send(), nó sẽ tự động giả định một kiểu nội dung của html. res.end(), tuy nhiên, chỉ cần gọi phương thức end (end) cơ bản của nút trên luồng phản hồi, do đó không có giả định nào được tạo cho Content-Type. " – abagh0703

Các vấn đề liên quan