node原生

 

js代码

node运行js文件,会将该js文件闭包,并且有5个默认参数:module,exports,require,__dirname,__filename

在文件开头会自动加上module.exports=exports={};

在文件结尾会自动加上 return module.exports;

 

Buffer

new Buffer(内容)

有copy方法和concat方法

 

 

文件操作

let fs = require('fs');
fs.readFile(文件路径,'默认utf8可不写该参数',function(err,data){//异步
  读取的data是字符串形式的数据

})
fs.writeFile(文件路径,写入数据:需要转成字符串形式的,function(err){//异步 默认是以utf8编码

})

同步
writeFileSync readFileSync


流操作

1)可读文件流:
let rs=fs.createReadStream(文件路径,{highWaterMark:int类型})//表示每次读int*1024b的数据,默认值64k

node内部会不停触发一个data事件
rs.on('data',function(chunk){
  监听到data事件 chunk是读取的Buffer类型
  rs.pause()//暂停读流
  rs.resume()//恢复读流
})
rs.on('end',function(){
  文件读取完毕触发
})

2)可写文件流
let ws=fs.createWriteStream(文件路径,{highWaterMark:int类型})默认16k
let flag=ws.write(数据buffer类型或字符串类型)返回值为真假值,表示数据大小是否超出水位线
ws.on('drain',function(){
  当内存中的数据全部写入文件时触发
})

ws.end(可传数据)强行写入文件最后关闭


3)读文件到另一个文件
rs.pipe(ws)
可读文件流.pipe(可写文件流)



node的内置模块
let util = require('util')
util.inherits(子,父)继承
let path = require('path');
path.resolve(...,..,..)多个地址拼接起来,会自动加上__dirname
path.join(__dirname,...)地址拼接

let url = require('url')
url.parse(url网址,true)会将url解析成对象,其中pathname有用,true表示将query解析成对象形式

require('mime').getType(根据pathname匹配content-type)


搭建服务器
let http = require('http');
http.createServer(function (req,res) {
  req是可读流 res是可写流
  req.url
  req.method
  req.headers
  res.setHeader(key,value)
  res.statusCode=
  res.write()
  res.end()

  
}).listen(端口号数值类型,function(){})




posted @ 2017-10-24 14:43  catalinaScript  阅读(167)  评论(0编辑  收藏  举报