gpt4 book ai didi

javascript - response.setHeader 和 response.writeHead 的区别?

转载 作者:IT老高 更新时间:2023-10-28 22:04:19 24 4
gpt4 key购买 nike

在我的应用程序中,我让我的 Nodejs 服务器发送 JSON 响应。我找到了两种方法来做到这一点,但我不确定有什么区别。

一种方法是

var json = JSON.stringify(result.rows);
response.writeHead(200, {'content-type':'application/json', 'content-length':Buffer.byteLength(json)});
response.end(json);

我的另一种方式是

var json = JSON.stringify(result.rows);
response.setHeader('Content-Type', 'application/json');
response.end(json);

两种方式都有效,我只是想知道两者之间有什么区别以及何时应该使用其中一种。

最佳答案

response.setHeader() 只允许您设置 singular header 。

response.writeHead() 将允许您设置有关响应头的几乎所有内容,包括状态代码、内容和 多个 header 。

考虑 NodeJS 文档:

response.setHeader(name, value)

Sets a single header value for implicit headers. If this header already exists in the to-be-sent headers, its value will be replaced. Use an array of strings here to send multiple headers with the same name.

var body = "hello world";
response.setHeader("Content-Length", body.length);
response.setHeader("Content-Type", "text/plain");
response.setHeader("Set-Cookie", "type=ninja");
response.status(200);

response.writeHead(statusCode[, statusMessage][, headers]))

Sends a response header to the request. The status code is a 3-digit HTTP status code, like 404. The last argument, headers, are the response headers. Optionally one can give a human-readable statusMessage as the second argument.

var body = "hello world";
response.writeHead(200, {
"Content-Length": body.length,
"Content-Type": "text/plain",
"Set-Cookie": "type=ninja"
});

关于javascript - response.setHeader 和 response.writeHead 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28094192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com