使用时按照nodejs官网使用
http
createServer(callback(req,res))
//设置响应头信息,防止中文乱码
response.writeHead(200, {
'Content-type': 'text/html;charset=utf8'
})
- 响应输出
- 响应结束
- 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
querystring.parse
- 把字符串转换成对象
querystring.parse(str,separator,eq,options)
- 参数
- str指需要反序列化的字符串;
- separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&";
- eq(可省)指用于划分键和值的字符或字符串,默认值为"=";
- options(可省)该参数是一个对象,里面可设置maxKeys和decodeURIComponent这两个属性
querystring.stringify
- 把对象转换成字符串
querystring.stringify(obj,separator,eq,options)
- 参数
- obj指需要序列化的对象
- separator(可省)用于连接键值对的字符或字符串,默认值为"&";
- eq(可省)用于连接键和值的字符或字符串,默认值为"=";
- 一个对象,maxKeys设置键的最大值,另一个设置编码方式
querystring.escape(str)
querystring.unescape(str)
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('文件读成功了')
})
fs.unlink( './dist/1.txt', function( error ) {
if( error ) throw error
console.log( '文件删除成功' )
})
目录操作
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();