我是 Express.js
的初学者,我对这两个关键字感到困惑: res.end()
和 res.send()
。
它们是相同的还是不同的?
原文由 sudheeshcm 发布,翻译遵循 CC BY-SA 4.0 许可协议
我是 Express.js
的初学者,我对这两个关键字感到困惑: res.end()
和 res.send()
。
它们是相同的还是不同的?
原文由 sudheeshcm 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先, res.send()
和 res.end()
是 不 一样的。
我想更加强调 res.end()
和 res.send()
之间关于响应标头的一些关键差异及其重要性。
1. res.send() 将检查输出的结构并相应地设置标题信息。
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
app.get('/',(req,res)=>{
res.send({msg:'hello'});
});
使用 res.end() 你只能用文本响应,它不会设置“ Content-Type ”
app.get('/',(req,res)=>{
res.end('<b>hello</b>');
});
2. res.send() 会在响应头中设置“ETag”属性
app.get('/',(req,res)=>{
res.send('<b>hello</b>');
});
¿为什么这个标签很重要?
ETag HTTP 响应标头是特定版本资源的标识符。它允许缓存更有效,并节省带宽,因为如果内容没有改变,Web 服务器不需要发送完整的响应。
res.end()
不会设置这个头属性
原文由 Jorge González 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.8k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
res.send()
将发送 HTTP 响应。它的语法是,body 参数可以是 Buffer 对象、String、对象或 Array。例如:
有关更多信息,请参阅 此 内容。
res.end()
将结束响应过程。这个方法其实来自Node核心,具体来说就是—的http.ServerResponse
response.end()
方法。它用于在没有任何数据的情况下快速结束响应。例如:阅读 此 内容以获取更多信息。