nodejs的常用模块的使用介绍

nodejs常用模块

querystring模块

  1. 功能:Node.js中的字符
  2. 核心方法
    1. parse 将String – > Object
      用法:parse( str , arg1 , arg2)
      str: 你要处理的字符
      arg1: 分隔字符
      arg2:将 ‘=’ 转化为 ‘:’ (前提是 & 符号是提前被转化的)
      var qs = require('querystring')
      var str = 'http://www.baidu.com:8080/001?a=1&b=2#hash=20'
      var obj = qs.parse( str,'?','&' )
      console.log( obj );
      //{ 
      //    'http://www.baidu.com:8080/001?a': '1',
      //    b: '2#hash=20' 
      //}
    
    1. stringify 将Object -> String
      var str = 'http://www.baidu.com:8080/001?a=1&b=2#hash=20'
      console.log(qs.stringify(obj))
      // http%3A%2F%2Fwww.baidu.com%3A8080%2F001=&a%3D1=b%3D2%23hash%3D20
      // %3A ---> :   %2F ---> /   %3D ---> =   %23 ---> #   ? ---> =& 
    
    1. escape 将中文字符编码
    var url = require('url')
    var charaStr = 'http://www.baidu.com/001?city=北京'
    var urlObj = url.parse(charaStr)    //将字符串转为对象
    var query = urlObj.query // 选择 city = 北京
    console.log( qs.escape( query) ) 
    //city%3D%E5%8C%97%E4%BA%AC
    
    1. unescape 将中文字符解码
    console.log( qs.unescape(  qs.escape( query) ))
    //city = 北京
    

http模块

  1. 核心方法
    • request
      举例: 用request来数据请求
        var request = require( 'request' )
      
        var http = require ( 'http' )
      
        http.createServer( function ( req,res ) {  //创建一个静态服务器
      
        request ( 'https://m.lagou.com/listmore.json', function ( error, response, body ) {//请求数据
      
        if( error ) throw error 
      
          res.write( body )   //将数据传给前端
          
          res.end( )  //数据传输完成
      
          })
        }).listen( 8000 )
      
    • http爬虫
      1. 爬虫:使用数据请求一段内容,然后将这段内容做数据清洗,最后在通过后端服务器发送到前台页面
      2. 使用步骤
      3. 数据请求,获得数据
      4. 数据清洗 ( 工具 cheerio )
      5. 安装 cheerio
        $ cnpm i cheerio -S
      6. 使用cheerio
        var cheerio = require( 'cheerio' )
      7. 发送给前台

events模块

事件比较简单,用以下例子实现

  var Events = require('events') 

  class MyEvents extends Events {}

  var myEvents = new MyEvents ()

  myEvents.on('aa',function(){  // 声明事件

  console.log( 'hello Node.js' )

  })

  myEvents.emit('aa')  // 事件的触发

file system模块

  • fs模块是Node.js中文件系统
  • 功能:操作文件或是目录 ( 即对文件和目录的增删改查 )
    1. 文件
    • 增 writeFile
    var fs = require('fs')
    fs.writeFile('./dist/1.txt', 'hello world', function(error) {
    if (error) throw error
    })
    
    • 改 appendFile
      fs.appendFile('./dist/1.txt', 'hello fs', 'utf8', function(error) {
      if (error) throw error
      console.log('文件修改成功')
      })
    
    • 查 readFile
    fs.readFile('./dist/1.txt', 'utf8', function(error, data) {
    if (error) throw error
    console.log(data)
    console.log('文件读成功')
    })
    
    • 删 unlink
    fs.unlink('./dist/1.txt', function(error) {
    if (error) throw error
    console.log('文件删除成功')
    })
    
    1. 目录
    • 增 mkdir
    fs.mkdir('./dist',function( error ) {
    if( error ) throw error 
    console.log( '目录创建成功' )
    })
    
    • 改 rename
    fs.rename('./dist','./fs_dist',function( error ) { 
    if( error ) throw error 
      console.log(' 目录名称修改成功 ')
    })
    
    • 查 readdir
    //先在创建的目录添加文件
    for( var i =  0 ; i < 10 ; i ++ ){     //创建10个文件
      fs.writeFile(`./fs_dist/${i}.txt`,i,function( err ) {
        console.log( `第${i}个文件创建成功` )
      })
    }
    
    fs.readdir('./fs_dist','utf-8',function ( error,data ) {  //读文件
      if( error ) throw error  
      console.log( data  )     // 这里输出以文件名为元素构成的数组
      for ( var i = 0 ; i < data.length; i ++ ){   //遍历目录下文件
        fs.readFile( `./fs_dist/${data[i]}`,'utf8',function( error , content ) {  //读取目录下文件里面的内容
          if( error ) throw error  
          console.log( content ) 
        })
      }
    })
    
    • 删 rmdir (这个方法只能删除空目录)
    fs.rmdir(path,callback)  //如需删除全部,先用文件方法先删除里面文件,然后用此方法删除目录
    fs.rmdir( './fs_dist', function ( error ) {
    if( error ) throw error  
    console.log('目录删除成功')
    })
    

stream模块

  • stream 流: 减少内存消耗,增加效率
    例:压缩包的创建
    var fs = require( 'fs' )
    
    var  zlib = require('zlib')  // 创建压缩包
    
    var readeStream = fs.createReadStream( './dist/1.txt' )   //读文件
    
    var writeStream = fs.createWriteStream( './dist/1.txt.gz' )   //写文件
    
    var gzip = zlib.createGzip() // 空压缩包
    
    //过程:读取文件---->新建一个压缩包---->将读取的文件放进压缩包---->输出
    readeStream    
      .pipe( gzip )
      .pipe( writeStream )  
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值