Node.js response.write() 方法
response.write() (在 v0.1.29 中添加)方法是“ http ”模块的内置应用程序接口,当请求是HEAD请求时,它会发送一个响应体块,该块被省略。如果调用了这个方法并且没有调用response.writeHead() ,它将切换到隐式头模式并刷新隐式头。
第一次调用response.write()时,它会将缓冲的 header 信息和 body 的第一个 chunk 发送给客户端。第二次调用response.write()时,Node.js 假定数据将被流式传输并单独发送新数据。也就是说,响应被缓冲到正文的第一个块。块可以是字符串或缓冲区。如果块是字符串,则第二个参数指定如何将其编码为字节流。当这块数据被刷新时,回调将被调用。
为了得到响应和正确的结果,我们需要导入' http '模块。
进口:
const http = require('http');
句法:
response.write(chunk[, encoding][, callback]);
参数:此方法接受三个参数,如上所述,如下所述:
- 块<字符串> | < Buffer > :它接受任何 Buffer 或 String Data。
- encoding < 字符串 > :默认编码集是' utf8 '。它接受字符串数据。
- callback < 函数 > :接受回调函数。
返回值< Boolean > :如果整个数据成功刷新到内核缓冲区,则返回true ,如果全部或部分数据在用户内存中排队,则返回false 。当缓冲区再次空闲时,将发出“ drain ”。
下面的示例说明了在 Node.js 中使用response.write()属性。
示例 1:文件名:index.js
// Node.js program to demonstrate the
// response.write() Method
// Importing http module
var http = require('http');
// Setting up PORT
const PORT = process.env.PORT || 3000;
// Creating http Server
var httpServer = http.createServer(function(request, response){
// Writing string data
response.write("Heyy geeksforgeeks ", 'utf8', () => {
console.log("Writing string Data...");
});
// Prints Output on the browser in response
response.end(' ok');
});
// Listening to http Server
httpServer.listen(PORT, () => {
console.log("Server is running at port 3000...");
});
输出:
Output: In-Console
Server is running at port 3000…
Writing string Data…
现在在浏览器中运行 http://localhost:3000/。
Output: In-Browser
Heyy geeksforgeeks ok
示例 2:文件名:index.js
// Node.js program to demonstrate the
// response.write() Method
// Importing http module
var http = require('http');
// Setting up PORT
const PORT = process.env.PORT || 3000;
// Creating http Server
var httpServer = http.createServer(function(request, response){
var str = "GeeksForGeeks wishes you a warm welcome...";
// Writing string data with
// 16-bit Unicode Transformation Format
response.write(str, 'utf16', () => {
console.log("Writing string Data...");
});
// Allocating predefined Buffer 'Hello world'
const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
// Writing the buffer data.
response.write(buf, 'utf8', () => {
console.log("Writing Buffer Data...");
});
// Creating buffer
const buff = Buffer.from(' hello world', 'utf8');
// Writing the buffer data.
response.write(buff, 'utf8', () => {
console.log("Writing Buffer Data...");
});
// Prints Output on the browser in response
response.end(' ok');
});
// Listening to http Server
httpServer.listen(PORT, () => {
console.log("Server is running at port 3000...");
});
使用以下命令运行index.js文件:
node index.js
输出:
Output: In-Console
Server is running at port 3000…
Writing string Data…
Writing Buffer Data…
Writing Buffer Data…
现在在浏览器中运行http://localhost:3000/ 。
Output: In-Browser
GeeksForGeeks wishes you a warm welcome…hello world hello world ok
参考: https://nodejs.org/api/http.html#http_response_write_chunk_encoding_callback