概述
查看更多资源
简介:
1.Node.js是运行在服务端的JavaScrip;
2.Node.js是一个基于Chrome JavaScript运行时建立的一个平台;
3.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好;
4.以下是Node.js中常用的核心模块。
一、events
1.1 使用事件:EventEmitter
/* index.js */
//导入events模块
const EventEmitter = require('events');
//定义类 继承 使用其所有的属性方法
class Player extends EventEmitter {}
// 实例化一个 player
var player = new Player();
//on监听 事件play
player.on('play', () =>{
console.log('正在播放。。。');
})
//触发事件 play
player.emit('play');
1.2 事件的参数
/*index.js*/
//导入events模块
const EventEmitter = require('events');
//定义类 继承 使用其所有的属性方法
class Player extends EventEmitter {}
// 实例化一个 player
var player = new Player();
//on监听 事件play
player.on('play', (track) =>{
console.log('正在播放。。。'+track);
console.log(`正在播放:《${track}》`);
})
//触发事件 play
player.emit('play','再见理想');
1.3 只执行一次的事件监听
/*index.js*/
//导入events模块
const EventEmitter = require('events');
//定义类 继承 使用其所有的属性方法
class Player extends EventEmitter {}
// 实例化一个 player
var player = new Player();
//once 监听 事件play 只执行一次
player.once('play', (track) =>{
console.log(`正在播放:《${track}》`);
})
//触发事件 play
player.emit('play','再见理想1');
player.emit('play','再见理想2');
二、File System
2.1 得到文件与目录的信息:stat
/*index.js*/
//导入fs模块
const fs = require('fs');
//查看index.js文件的信息
fs.stat('index.js',(error,stats) =>{
if (error){
console.log(error);
}else{
console.log(stats);
//是否是文件还是目录
console.log(`文件:${stats.isFile()}`);
console.log(`目录:${stats.isDirectory()}`);
}
})
2.2 创建新目录:mkdir
/*index.js*/
//导入fs模块
const fs = require('fs');
//在根目录下创建新目录logs
fs.mkdir('logs',(error) =>{
if(error) {
console.log(error);
}else{
console.log('成功创建目录:logs')
}
})
2.3 创建文件并写入内容:writeFile、appendFile
/*index.js*/
//导入fs模块
const fs = require('fs');
//writeFile:向文件中写入内容并覆盖文件原有的内容,如果文件不存在就会新建;
fs.writeFile('logs/hello.log','您好~n',(error) =>{
if (error) {
console.log(error);
}else{
console.log('成功写入文件1');
}
})
//appendFile:向文件中添加内容,不会覆盖文件原有内容
fs.appendFile('logs/hello.log','hello~',(error)=>{
if(error){
console.log(error);
}else {
console.log('成功写入文件2');
}
})
2.4 读取文件里的内容:writeFile
/*index.js*/
//导入fs模块
const fs = require('fs');
//writeFile:向文件中写入内容并覆盖文件原有的内容,如果文件不存在就会新建;
fs.readFile('logs/hello.log','utf8',(error,data) =>{
if(error){
console.log(error);
}else{
//data 默认为二进制数据,可以转换字符串,或者添加数据类型utf8
console.log(data);
// console.log(data.toString());
}
})
2.5 列出目录包含的内容:readdir
/*index.js*/
//导入fs模块
const fs = require('fs');
//readdir:获取logs文件夹中的内容;
fs.readdir('logs',(error,files) =>{
if (error) {
console.log(error);
} else {
console.log(files);//返回数组
}
})
2.6 重命名文件夹或文件名:rename
/*index.js*/
//导入fs模块
const fs = require('fs');
//rename:重命名文件名或者文件夹名
fs.rename('logs/hello.log','logs/greeting.log',(error) =>{
if (error) {
console.log(error)
} else {
console.log('重命名成功!');
}
})
2.7 删除目录与文件:rmdir、unlink
/*index.js*/
//导入fs模块
const fs = require('fs');
//同步读取文件夹内容,并删除其中的文件
fs.readdirSync('logs').map((file)=>{
fs.unlink(`logs/${file}`,(error) =>{
if (error) {
console.log(error)
} else {
console.log(`成功删除了文件:${file}`);
}
});
});
//rmdir:删除目录,如果是非空目录,则报错
fs.rmdir('logs',(error)=>{
if (error) {
console.log(error);
} else {
console.log('成功删除了目录:logs');
}
})
三、Stream
3.1 读取文件流
/*index.js*/
//根目录下 新建data.json文件 随意输入内容
//导入fs模块
var fs = require('fs');
var fileReadStream = fs.createReadStream('data.json');
var count = 0;
fileReadStream.once('data',(chunk) =>{
console.log(chunk.toString());
});
fileReadStream.on('data',(chunk) =>{
console.log(`${count} 接受到:${chunk.length}`);
})
3.2 可读流的事件
/*index.js*/
//导入fs模块
var fs = require('fs');
// 以流的形式 读取文件内容 一块一块的读取
var fileReadStream = fs.createReadStream('data.json');
var count = 0;
//data 事件:有数据可读触发 返回读取的一块内容
fileReadStream.on('data',(chunk) =>{
console.log(`${count} 接受到:${chunk.length}`);
})
//end 事件:读取结束时触发
fileReadStream.on('end',()=>{
console.log('--结束--');
})
//error事件:读取出错时触发
fileReadStream.on('error',(error) =>{
console.log(error);
})
3.3 可写的文件流
/*index.js*/
//导入fs模块
var fs = require('fs');
// 创建可读、可写入的流
var fileReadStream = fs.createReadStream('data.json');
var fileWriteStream = fs.createWriteStream('data-1.json')
var count = 0;
//data 事件:有数据可读触发 返回读取的一块内容
fileReadStream.on('data',(chunk) =>{
console.log(`${count} 接受到:${chunk.length}`);
//将读取的文件内容 写入新的文件中
fileWriteStream.write(chunk);
})
//end 事件:读取结束时触发
fileReadStream.on('end',()=>{
console.log('--结束--');
})
//error事件:读取出错时触发
fileReadStream.on('error',(error) =>{
console.log(error);
})
3.4 链接使用 pipe
/*index.js*/
//导入fs模块 文件压缩模块zlib
var fs = require('fs');
var zlib = require('zlib');
// 创建可读、可写入的流
var fileReadStream = fs.createReadStream('data.json');
var fileWriteStream = fs.createWriteStream('data.json.gz');
//写入的流可以 监听pipe 输出源文件
fileWriteStream.on('pipe',(source)=>{
console.log(source);
})
//通过管道pipe处理可读文件,再写入
fileReadStream
.pipe(zlib.createGzip())
.pipe(fileWriteStream);
四、HTTP
4.1 request
/*index.js*/
//导入http模块
var http = require('http');
//创建请求的协议、主机名、端口、方法、路径
var options ={
protocol:'http:',
hostname:'api.douban.com',
port:'80',
method:'GET',
path:'/v2/movie/top250'
};
//使用http的request方法 发出请求
var request = http.request(options,(response) =>{
console.log(response);
console.log(response.statusCode);
console.log(response.headers);
});
//请求时监听 error
request.on('error',(error) =>{
console.log(error);
});
//请求结束
request.end();
4.2 利用请求回来的数据
/*index.js*/
//导入http模块
var http = require('http');
//创建请求的协议、主机名、端口、方法、路径
var options ={
protocol:'http:',
hostname:'api.douban.com',
port:'80',
method:'GET',
path:'/v2/movie/top250'
};
//定义变量 存储数据
var responseData = '';
//使用http的request方法 发出请求
var request = http.request(options,(response) =>{
//数据默认为二进制 ,设置为utf8
response.setEncoding('utf8');
response.on('data',(chunk) =>{
responseData += chunk;
});
response.on('end',()=>{
JSON.parse(responseData).subjects.map((item) =>{
console.log(item.title);
});
});
});
//请求时监听 error
request.on('error',(error) =>{
console.log(error);
});
//请求结束
request.end();
4.3 创建服务器
/*index.js*/
//导入http模块
var http = require('http');
//创建server 服务
var server = http.createServer();
server.on('request',(request,response) =>{
response.writeHead(200,{
'Content-Type':'text/html'
});
response.end(`<h1>hello server</h1>`);
});
//监听端口
server.listen(8080);
//cmd中启动服务器 node index.js
//浏览器打开 localhost:8080
最后
以上就是幸福鸵鸟为你收集整理的node.js核心模块学习总结的全部内容,希望文章能够帮你解决node.js核心模块学习总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复