您的位置:首页 > 其它

利用fs.readdir()函数访问服务器指定目录里的内容

2014-11-15 11:17 239 查看
使用node命令运行app.js文件,使用curl或网页输入URL访问服务器指定目录所包含的内容,如访问根目录下的opt文件夹,测试结果如下:

curl:



网页:



服务器:



app.js源码如下:

var http=require('http'),

    fs=require('fs');

var files;

function ll(callback){

    fs.readdir(dir,function(err,files){

        if(err){

            callback(err);

            return;

        }

        callback(null,files);

        console.log(files);

    });

}

function handle_incoming_request(req,res){

    console.log("INCOMING REQUEST: "+req.method+"  "+req.url);
    console.log(req.url.split('/'));                       

    dir=req.url;

    ll(function(err,files){

        if(err){

            res.writeHead(503,{"Content-Type":"application/json"});

            res.end(JSON.stringify(err));

            return;

        }

        var out={error:null,files:files};

        res.writeHead(200,{"Content-Type":"application/json"});

        res.end(JSON.stringify(out));

    });

}

http.createServer(handle_incoming_request).listen(8080);

解释:

console.log(req.url.split('/'));在本程序中并无太大意义,但有必要指出的是,如果访问的地址是http://localhost:8080,那么req.url就等于根目录符号'/',如果要对req.url进行解析分组,使用String.split()函数时,需要注意,若req.url=='/',则req.url.split('/')==[""],返回的数组有一个元素,而且该元素为空,如果req.url=='/opt/Sublime',则req.url.split('/')==["","opt","Sublime"],利用'/'符号划分返回的第一个数组的元素始终都是空

另外需要注意的一点是fs.readdir()函数的第一个指示路径的字符串参数中连续的‘/’符号表示一个‘/’符号,如"//////"表示根路径符号"/",而"////home//////////jason"则等价与"/home/jason"

fs.readdir()函数可以实现类似Linux中显示当前文件夹下内容的ll命令,只是ll显示的信息更全面,而fs.readdir()函数只返回文件名称数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fs.readdir
相关文章推荐