1. fs.readFile(path,encode,callback(err,data)) 异步读取
- err转换成boolean类型;无错误false 有错误true
- encode没有指定则返回原始的 buffer
- data根据指定的编码类型返回
- 异步式 I/O 是通过回调函数来实现的
- 调用时所做的工作只是将异步式 I/O 请求发送给了操作系统,然后立即返回并执行后面的语句,执行完以后进入
事件循环监听事件
。当 fs 接收到 I/O 请求完成的事件时,事件循环会主动调用回调函数以完成后续工作。因此我们会先看到 end.,再看到file.txt 文件的内容。
2.var data = fs.readFileSync(path,encode) //同步读取
console.log(data);
3. 事件
调用EventEmitter
var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();
注册
event.on("some_event",function(){
//执行语句
})
发射
event.emit('some_event');
4. util.inherits(sub,base)
sub仅仅继承了 Base 在原型中定义的函数和属性,而构造函数内部创造的 base 属性和 sayHello 函数都没有被 Sub 继承
var util= require("util");
function Father(){ //构造函数
this.name="zhou";
this.age=43;
this.sayName=function(){
console.log("Father");
}
}
Father.prototype.name2="ben"; //原型
Father.prototype.age2=23;
Father.prototype.sayName1=function(){
console.log(this.name2);
}
function GrandFather(){
this.name1="zhou1";
this.age1=431;
}
util.inherits(GrandFather,Father); //GrandFather继承Father的原型
var fa=new Father();
fa.love="yuan";
console.log(fa);
var GrandFa=new GrandFather();
//GrandFa.sayName(); //错误
console.log(GrandFa.name2) //ben
GrandFa.sayName1(); //ben
5. 打开文件
fs.open(path, flags, [mode], [callback(err, fd)])
path 为文件的路径,
flags 可以是以下值。
r :以读取模式打开文件。
r+ :以读写模式打开文件。
w :以写入模式打开文件,如果文件不存在则创建。
w+ :以读写模式打开文件,如果文件不存在则创建。
a :以追加模式打开文件,如果文件不存在则创建。
a+ :以读取追加模式打开文件,如果文件不存在则创建
6.关闭文件
fs.close(fd, [callback(err)])
7. fs.read(fd, buffer, offset, length, position, callback)
fd - 通过 fs.open() 方法返回的文件描述符。
buffer - 数据写入的缓冲区。
offset - 缓冲区写入的写入偏移量。
length - 要从文件中读取的字节数。
position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。
var fs =require("fs");
fs.open('data.json', 'r', function(err, fd) {
if (err) {
console.error(err);
return;
}
var buf = new Buffer.alloc(248);
fs.read(fd, buf, 0, buf.length, null, function(err, bytesRead, buffer) {
if (err) {
console.error(err);
return;
}
console.log('bytesRead: ' + bytesRead);
//console.log(buffer);
console.log(buf.toString("utf8"));
})
})
8.读取目录
fs.readdir('../',function(err,files){
console.log(files);
})
files为数组
9.创建目录
fs.mkdir("./ben",function(){
})
10.
var server=http.createServer (function(req,res){
})
server.listen(8080);
11
var server = new http.Server();
server.on("requset",function(req,res){})
server.listen(8080);
12将一个URL字符串转换成对象并返回
url.parse(urlStr);
urlStr url字符串
var url = require('url');
var a = url.parse('http://localhost:8080/one?a=index&t=article');
console.log(a);
//输出结果:
{
protocol : 'http' ,
auth : null ,
host : 'localhost:8080' ,
port : '8080' ,
hostname : 'localhost' ,
hash : null ,
search : '?a=index&t=article',
query : 'a=index&t=article',
pathname : '/one',
path : '/one?a=index&t=article',
href : 'http://localhost:8080/one?a=index&t=article'
}
var query = url.parse('http://localhost:8080/one?a=index&t=article',true).query; //true必须
console.log(query.a);
console.log(query.t);
13
ExpressJS提供sendFile()函数,它基本上将HTML文件发送到浏览器,然后由浏览器自动解释。我们需要做的就是在每个路由中提供适当的HTML文件。
13,检测文件的类型mime
var http =require("http");
var url=require("url");
var mime=require("mime");
http.createServer(function(req,res){
var mimeType = mime.getType(url.parse(req.url).pathname) ;
res.end(mimeType);
}).listen(8080);
13 .path.extname(p)
返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。
14. 读取目录
fs.readdir(path, callback)
path - 文件路径。
callback - 回调函数,回调函数带有两个参数err, files,err 为错误信息,files 为 目录下的文件数组列表。
网友评论