В чем разница между res.end() и res.send()?


Я новичок в Express.js и меня смущают эти два слова: res.end() и res.send().

Они одинаковые или разные?

2 80

2 ответа:

res.send() отправит ответ HTTP. Его синтаксис,

res.send([body])

параметр body может быть объектом буфера, строкой, объектом или массивом. Например:

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

посмотреть этой для получения дополнительной информации.

res.end() завершит процесс ответа. Этот метод на самом деле исходит из ядра узла, в частности response.end() метод http.ServerResponse. Он используется для быстрого завершения ответа без каких-либо данных. Например:

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

читать этой для получения дополнительной информации.

Я хотел бы сделать немного больше внимания на некоторые ключевые различия между res.end() & res.send() в отношении заголовков ответов и почему они важны.

1. res. send() проверит структуру вашего вывода и установит заголовок информация соответственно.


    app.get('/',(req,res)=>{
       res.send('<b>hello</b>');
    });

enter image description here


     app.get('/',(req,res)=>{
         res.send({msg:'hello'});
     });

enter image description here

где с res. end() вы можете только ответить с текстом, и он не будет установлен "Content-Type"

      app.get('/',(req,res)=>{
           res.end('<b>hello</b>');
      }); 

enter image description here

2. РЭС.отправить() будет установлен атрибут "значение ETag" в заголовке ответа

      app.get('/',(req,res)=>{
            res.send('<b>hello</b>');
      });

enter image description here

¿почему этот тег важен?
Заголовок ответа HTTP ETag является идентификатором для определенной версии ресурса. Это позволяет кэшам быть более эффективными, и экономит пропускную способность, так как веб-серверу не нужно отправлять полный ответ, если контент не изменился.

res.end() не будет устанавливать этот атрибут заголовка