PG1*_*PG1 31 node.js npm express
我是一个初学者express.js,我试图理解之间的差异res.send和res.write?
Oma*_*era 60
res.send
实际解释
res.send只能调用一次,因为它相当于res.write+res.end()例
app.get('/user/:id', function (req, res) {
res.send('OK');
});
Run Code Online (Sandbox Code Playgroud)有关详细信息,请发送电子邮件至expressjs.com/en/api.html
res.write
例
response.write('<html>');
response.write('<body>');
response.write('<h1>Hello, World!</h1>');
response.write('</body>');
response.write('</html>');
response.end();
Run Code Online (Sandbox Code Playgroud)有关更多详细信息,请
访问
nodejs.org/docs nodejs.org/en/docs/guides
res.send相当于res.write + res.end
所以关键差异res.send只能被调用一次,因为res.write可以多次调用,然后是a res.end.
但除此之外res.send是Express的一部分.它可以自动检测响应头的长度.但是res.send()可能存在内存峰值的可能性,如果是大文件,我们的应用程序会介于两者之间.
任何答案中都没有指出的最重要的区别之一是“排水”。
该res.write可以返回true或false。根据文档:
如果整个数据已成功刷新到内核缓冲区,则返回 true。如果所有或部分数据已在用户内存中排队,则返回 false。'drain' 将在缓冲区再次空闲时发出。
因此,在执行 时res.write,调用者应该推迟写入,直到res.write返回 false 时Drain 事件发出。
所有这些都在res.send. 权衡是使用后者时必须进行的缓冲。
| 归档时间: |
|
| 查看次数: |
30691 次 |
| 最近记录: |