nodejs内置模块深入学习

使用时按照nodejs官网使用

http

createServer(callback(req,res))
  • 用于创建静态服务器
  • 用法

//设置响应头信息,防止中文乱码
response.writeHead(200, {
'Content-type': 'text/html;charset=utf8'
})
  • 响应输出
    • res.write(data)
  • 响应结束
    • res.end([ data ] )//当出现end after write错误时建议使用end()输出data
  • 监听服务器
    • listen(port,hostname,callback)
get(options/url,callback)
  • 请求网络数据(爬虫)
  • https协议的网址要使用https.get()
  • 用法看官网
  • 数据清洗用 第三方插件 cheerio (npmjs上查看用法)数据清洗在get回调函数的res.on('end',callback)的回调函数中进行

Events

  • 内置事件处理模块
  • 使用
//引入模块
const EventEmitter = require('events');

//为了从EventEmitter的原型上继承on和emit方法
class MyEmitter extends EventEmitter {}

//实例化
const myEmitter = new MyEmitter();

//nodejs两大特征中事件驱动的  发布
myEmitter.on('event', () => {
  console.log('an event occurred!');});
 
// 事件驱动的 订阅
myEmitter.emit('event');

quertstring

  • 对http请求所带的数据进行解析
querystring.parse
  • 把字符串转换成对象
  • querystring.parse(str,separator,eq,options)
  • 参数
  1. str指需要反序列化的字符串;
  2. separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&";
  3. eq(可省)指用于划分键和值的字符或字符串,默认值为"=";
  4. options(可省)该参数是一个对象,里面可设置maxKeys和decodeURIComponent这两个属性
querystring.stringify
  • 把对象转换成字符串
  • querystring.stringify(obj,separator,eq,options)
  • 参数
  1. obj指需要序列化的对象
  2. separator(可省)用于连接键值对的字符或字符串,默认值为"&";
  3. eq(可省)用于连接键和值的字符或字符串,默认值为"=";
  4. 一个对象,maxKeys设置键的最大值,另一个设置编码方式
querystring.escape(str)
  • escape可使传入的字符串进行编码
querystring.unescape(str)
  • unescape方法可将含有%的字符串进行解码
fs中的stream
  • stram 流
  • 优点:减少内存消耗,增加效率(边读边写,边下载边安装)
  • 分为可读的流和可写的流
//压缩包的使用

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 )

fs (File System)

  • 用来操作文件或目录
文件操作
  • 增文件 writeFile(路径,内容,错误优先回调)
//路径中不写  .  就不会创建文件
//如果文件之前就存在,则会进行内容的覆盖,从第一个字符开始覆盖,如果之前的内容要长,则会出现混杂的情况
//目录不存在会报错
fs.writeFile('./dist/test.txt','hello nodejs',function( error ) {

if( error ) throw error

}) 

  • 改文件(添加内容) appendFile(‘路径’,‘内容’,编码格式,错误优先的回调)

fs.appendFile('./dist/test.txt','\n hello world,'utf8',function( 

error ) {

if( error ) throw error

console.log('文件修改成功')

})


  • 查文件 readFile(‘路径’,编码格式,错误优先的回调和内容)
当内容为二进制数时(图片),使用‘binary‘ 编码格式或把data使用toString成字符串

fs.readFile( './dist/1.txt','utf8',function( error, data ) {

if ( error ) throw error

// console.log( data.toString() ) // 二进制数据

console.log( data )

console.log('文件读成功了')

})


  • 删文件 unlink(文件路径,错误优先的回调)

fs.unlink( './dist/1.txt', function( error ) {

if( error ) throw error

console.log( '文件删除成功' )

})


目录操作
  • 增目录 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(路径,编码格式,错误优先以及目录数组的回调函数)

fs.readdir('./fs_dist','utf-8',function ( error,data ) {

if( error ) throw error

console.log( data ) // 以文件名为元素构成的数组

})

  • 删目录 rmdir(路径,错误优先的回调)//只能删除空的目录

const fs = require('fs')

const path = './dist'

function* unlinkfs() {
//删除目录中的文件,因为文件是循环删除,所以需要使用异步处理
yield fs.readdir(path, (err, data) => {

if (err) throw err

for (let i = 0; i < data.length; i++) {

fs.unlink(path + '/' + data[i], (err) => {

if (err) throw err

console.log(`文件${data[i]}删除成功`);

})
}
});
//删除目录
yield fs.rmdir(path, (err) => {

if (err) throw err

console.log(path + "删除成功");

})
}
var res = unlinkfs();

res.next();

res.next();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值