这段代码中的客户端,路径和数据是什么?

时间:2016-10-27 05:31:14

标签: javascript node.js

我正在学习Node.js我已经创建了服务器和客户端 .js 文件,但我不了解一些事情。例如,在webserver.js文件中,我不知道pathname的用途是什么。同样,在client.js文件中,datapath是什么?

如果您认为我应该阅读它的基础知识,请尽可能为我提供一个有用的链接。我试图找到但不起作用。

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

3 个答案:

答案 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