Смотрите это для получения дополнительной информации.
res.end()завершит процесс ответа. Этот метод на самом деле происходит от ядра Node, а именно от response.end()метода http.ServerResponse. Он используется для быстрого завершения ответа без каких-либо данных. Например:
res.end();
res.status(404).end();
Прочитайте это для получения дополнительной информации.
Но res.end на самом деле может действовать как res.send, так как вы можете передать строковый аргумент для добавления в качестве тела ответа. Кроме того, res.send также завершает ответ. Так как они функционально отличаются?
Salthhehash
31
@ psytech140 Jmar77 был хороший ответ здесь : «Если вы передаете строку res.send (), он автоматически принимает тип содержимого HTML res.end (), однако, просто называет основной конец узла реализации () на. поток ответа, поэтому для Content-Type не делается никаких предположений. "
abagh0703
Пришлось высказывать это исключительно потому, что я никогда не использовал, expressно из заглавной мысли - кто-то что-то посылает, что-то заканчивает ... это правда.
Даррен Бартруп-Кук
Но что делать, если вы просто используете res.send()ничего? Это как res.end()?
¿Почему этот тег важен?
Заголовок ответа ETag HTTP является идентификатором для конкретной версии ресурса. Это позволяет кэшам быть более эффективными и экономит пропускную способность, поскольку веб-серверу не нужно отправлять полный ответ, если содержимое не изменилось.
res.end() НЕ будет устанавливать этот атрибут заголовка
Это должен быть принятый ответ, по моему мнению ... больше внимания уделяется фактическим различиям, которые могут испортить ваш рабочий день, вместо обсуждения окончательного ответа с / без содержания ...
Томас
13
Что делает res.send (), так это реализует res.write , res.setHeaders и res.end .
он проверяет, какие данные вы отправляете, и устанавливает правильные заголовки,
затем его поток данных с помощью res.write, и в конце он использует res.end, чтобы установить конец запроса.
Есть некоторые случаи, когда вы захотите сделать это вручную, например, если вы хотите потоковый файл или большой набор данных, в этом случае вы захотите установить заголовки самостоятельно и использовать res.write, чтобы сохранить поток течь.
resявляется объектом HttpResponse, который происходит от OutgoingMessage. res.sendвызовы, res.endкоторые реализованы OutgoingMessage для отправки HTTP-ответа и закрытия соединения. Мы видим код здесь
res.end
используется простой узел, гдеres.send
используется экспресс-фреймворкОтветы:
res.send()
отправит ответ HTTP. Его синтаксис:Параметр body может быть объектом Buffer, строкой, объектом или массивом. Например:
Смотрите это для получения дополнительной информации.
res.end()
завершит процесс ответа. Этот метод на самом деле происходит от ядра Node, а именно отresponse.end()
методаhttp.ServerResponse
. Он используется для быстрого завершения ответа без каких-либо данных. Например:Прочитайте это для получения дополнительной информации.
источник
express
но из заглавной мысли - кто-то что-то посылает, что-то заканчивает ... это правда.res.send()
ничего? Это какres.end()
?Я хотел бы сделать несколько больший акцент на некоторых ключевых различиях между
res.end()
& вres.send()
отношении заголовков ответов и их важности.1. res.send () проверит структуру вашего вывода и соответственно установит информацию заголовка.
Где с помощью res.end () вы можете отвечать только текстом, и он не будет устанавливать « Content-Type »
2. res.send () установит атрибут «ETag» в заголовке ответа
¿Почему этот тег важен?
Заголовок ответа ETag HTTP является идентификатором для конкретной версии ресурса. Это позволяет кэшам быть более эффективными и экономит пропускную способность, поскольку веб-серверу не нужно отправлять полный ответ, если содержимое не изменилось.
res.end()
НЕ будет устанавливать этот атрибут заголовкаисточник
Что делает res.send (), так это реализует res.write , res.setHeaders и res.end .
он проверяет, какие данные вы отправляете, и устанавливает правильные заголовки,
затем его поток данных с помощью res.write, и в конце он использует res.end, чтобы установить конец запроса.
Есть некоторые случаи, когда вы захотите сделать это вручную, например, если вы хотите потоковый файл или большой набор данных, в этом случае вы захотите установить заголовки самостоятельно и использовать res.write, чтобы сохранить поток течь.
источник
res
является объектом HttpResponse, который происходит от OutgoingMessage.res.send
вызовы,res.end
которые реализованы OutgoingMessage для отправки HTTP-ответа и закрытия соединения. Мы видим код здесьисточник