【发布时间】:2017-07-17 13:29:21
【问题描述】:
我开始更多地了解这个“网络世界”的运作方式,这就是我参加免费代码营课程的原因。我已经开始了前端开发,我真的很喜欢它。现在我在后端部分。 后端对我来说更加模糊。有很多事情我没有得到,所以我希望有人可以帮助我。
首先我了解了 get 方法。所以我做了:
var http = require('http');
然后发出一个get请求:
http.get(url, function callBack(response){
response.setEncoding("utf8");
response.on("data", function(data){
console.log(data);
});
});
问题 1) 显然,这段代码“得到”了来自某个 URL 的响应。但是什么反应?我什至没有特别要求什么。
继续... 第二个练习要求我们监听 TCP 连接并创建一个服务器,然后写入该连接的日期和时间。所以这里是答案:
var server = net.createServer(function listener (socket){
socket.end(date);
});
server.listen(port);
问题 2) 好的,所以我用 net.createServer() 创建了一个 TCP 服务器,当连接成功时,我输出了日期。但是哪里?当我将日期放入 socket.end() 时实际发生了什么?
最后但并非最不重要的... 在上一个练习中,我被告知要创建一个 HTTP 服务器(什么?),以便在每次收到请求时为它提供一个文本文件,这就是我所做的:
var server = http.createServer(function callback(request, response){
var read = fs.createReadStream(location);
read.pipe(response);
});
server.listen(port);
问题 3) a) 为什么我必须创建 HTTP 服务器而不是常规 TCP?有什么不同? b) createReadStream 是做什么的? c) pipe() 是做什么的?
如果有人可以帮助我,试着让解释更简单会对我有很大帮助,因为正如你所见,我在这个问题上非常愚蠢。
非常感谢!
【问题讨论】:
-
I didn't even ask for anything in particular- 是的,你做了,响应是给定url的响应 -
虽然这不是堆栈溢出的典型问题格式,但看到有人真正了解如何编写程序并且在经过一些初步研究后表现出基本掌握后只想要真正的澄清,这令人耳目一新。 +1
标签: javascript node.js backend