【发布时间】:2022-01-10 04:41:48
【问题描述】:
我有一个非常简单的网络服务器:
const ws = require('http');
ws.createServer(
function(req,res)
{
console.log('request received');
res.write('Hello world');
res.end();
})
.listen(1234);
服务器正常工作。当我在 localhost:1234 上打开浏览器时,我得到 Hello World 文本。当我从 REST 客户端向 localhost:1234 发送 GET 时,我得到:
HTTP/1.1 200 OK
Date: Fri, 03 Dec 2021 20:10:12 GMT
Connection: close
Transfer-Encoding: chunked
Hello world
现在,我想编写一个测试,但我无法找到从响应中提取“Hello world”文本的任何方法。目前,我的测试代码如下所示:
const http = require('http');
let req = http.get('http://localhost:1234',(res)=>{
let txt = res.read();
console.log(txt);
});
这总是返回 null。
我也试过了:
const http = require('http');
let req = http.get('http://localhost:1234',(res)=>{
let data = [];
res.on('data',(chunk)=>data.push(chunk));
console.log(data);
});
这会返回一个空数组。
当我调试并查看 res 对象时,很容易在响应中找到除 Hello World 文本之外的所有内容(主要在 res.headers 中)。我已经看到很多例子来提取以 JSON 格式发送的数据等,但我想从最简单的例子(只是纯文本)开始,似乎找不到任何方法来做到这一点。当我通过 HTTP 模块发送 GET 时,似乎浏览器可以返回的任何东西应该可用,但我找不到它。
【问题讨论】:
标签: javascript node.js http webserver