我正在学习Node.js我已经创建了服务器和客户端 .js 文件,但我不了解一些事情。例如,在webserver.js文件中,我不知道pathname
的用途是什么。同样,在client.js
文件中,data
和path
是什么?
如果您认为我应该阅读它的基础知识,请尽可能为我提供一个有用的链接。我试图找到但不起作用。
webserver.js
var fs=require('fs');
var url=require('url');
var http=require('http');
http.createServer(function(request, response){
var pathname=url.parse(request.url).pathname;
console.log("Pathname: "+pathname+"Request.url: "+request.url);
fs.readFile(pathname.substr(1), function(err, data){
if(err){
console.log("Error reading.");
response.writeHead(400, {'content-type' : 'text/html'});
}else{
response.writeHead(200, {'content-type' : 'text/html'});
response.write(data.toString());
}
response.end();
});
}).listen(8081);
console.log("Server is running.");
client.js
var http=require('http');
var options={
host: 'localhost',
port: '8081',
path: '/index.html'
};
var callback=function(response){
var body='';
response.on('data', function(data){
body+=data;
});
response.on('end', function(){
console.log("Data received.");
});
}
var req=http.request(options, callback);
req.end();
原始代码源位于:Code
答案 0 :(得分:1)
pathname是URL的路径部分,它位于主机之后和查询之前,包括初始斜杠(如果存在)。
答案 1 :(得分:0)
pathname
是http服务器请求的路径。此问题的示例路径名是/questions/40276802/what-is-client-path-and-data-in-this-code
。 client.js中的path
是同一笔交易。
您可以在Node.js文档中找到有关将URL解析为路径名的文档:https://nodejs.org/api/http.html#http_message_url
Node的HTTP客户端使用发出多个事件的流。使用缓冲区调用data
,您通常会将其添加到数组中,然后稍后进行连接(如代码所示)。发送所有缓冲区时调用end
。
您可以在Node.js文档中找到有关处理事件的文档:https://nodejs.org/api/stream.html#stream_class_stream_readable
答案 2 :(得分:0)
pathname是请求的路径。您应该查看url
包的文档:npm-url
在您的client.js
中:data
是来自服务器的响应数据。再次查看http
文档:HTTP|Node.js
用于学习回调和所有关于Node.js:nodeschool.io