1,Node.js是一个基于Chrom V8引擎的javascript运行环境
2,Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效
3,Node.js的包管理器npm,是全球最大的开源库生态系统
搭建http服务器
1.引入http模块
var http = require("http");
2.创建服务器
var server = http.createServer((request,response)=>{
// request :请求体: 浏览器给服务器的数据
// response:返还体 服务器返还给浏览器的
//设置文字的编码格式 (第三种最常用)
//方式一
response.writeHeader(200,{"Content-type":"text/html;charset=utf-8"});
//方式二
response.write("<head><meta charset = utf-8"/></head> ");
//方式三
response.setHeader("Content-type","text/html;charset=utf-8");
response.write("hello world");
response.end();
})
3.创建端口号(供前台使用)
server.listen(8090,()=>{
console.log("服务器搭建成功“);
})
文件操作
引入文件操作的内置模块
var fs = require("fs");
1,读取文件
a:同步操作
var data = fs.readFileSync( "1.txt" , "utf-8" ); // 1.txt 是目标文件的路径 “utf-8"是读取格式
console.log(data)
b:异步操作
fs.readFile("1.txt","utf-8",function(err,data){
if(err){
console.log(err);
}
else{
console.log(data)
}
})
2,写入文件
a:覆盖写入,新的内容会覆盖原来的内容
var data = "我是覆盖写入的文件”;
fs.writeFile( “1.txt" , data, "utf-8" , function(err){
if(err){
console.log(err)
}
else{
console.log("写入成功”);
}
})
b:连续写入,新的内容会显示在原有内容的后面
var data = "我是连续写入的文件”;
//{ flag : "a" },规定了文件的写入方式
fs.writeFile( “1.txt" , data , { flag : "a" },"utf-8" , function(err){
if(err){
console.log(err)
}
else{
console.log("写入成功”);
}
})
c:连续写入的另一种方式
var data ="我是要追加的内容“;
fs.appendFile("1.txt",data,function (err) {
if(err){
console.log(err);
}
else{
console.log("追加写入成功");
}
})
3,删除文件
这里删除的文件,不经过回收站,删除了,就找不回来了
fs.unlink("1.txt",function (err) {
if(err){
console.log(err);
}
else {
console.log("删除成功");
}
})
4,文件名修改
//"2.txt"是原文件名,"3.txt"是新文件名
fs.rename("2.txt","3.txt",function (err) {
if(err){
console.log(err);
}
else{
console.log("修改成功");
}
})
5,文件的复制
先读取,再把读取的内容写入新的文件(同步)
function mycopy(src,dest) {
fs.writeFileSync(dest,fs.readFileSync(src,"utf-8"));
}
//将3.txt复制一份,名为4.txt
mycopy("3.txt","4.txt");
6,获取文件的详细信息
fs.stat("3.txt",function (err,stat) {
if(err){
console.log(err);
}
else{
console.log(stat);
//判断是否是文件
// var res = stat.isFile();
// console.log(res); 打印的是true或者是false
//判断是否是文件夹(目录)
//var judge=stat.isDirectory();
// console.log(judge); 打印的是true或者是false
}
})
文件目录操作
1,读取文件夹内容
fs.readdir("22",function (err,data) {
if(err){
console.log(err);
}else {
console.log(data); //打印的是数组
}
})
2,删除文件夹
function removedir(src) {
var arr=fs.readdirSync(src); //读取文件夹中的内容
for(var i=0;i<arr.length;i++){ //遍历文件夹中的每一项
var url=src+"/"+arr[i]; //拼接文件路径
var stat=fs.statSync(url); //获取文件的详细信息
if(stat.isFile()){ //判断是否是文件
fs.unlinkSync(url); //如果是文件,直接删除
}
else{
removedir(url); //如果是文件夹,循环调用函数
}
}
fs.rmdirSync(src); //删除空的文件夹
}
removedir("11"); //执行函数
querystring 模块
这个模块的主要功能是将对象转化为字符串
stringify() 将对象的键值对进行拼接
parse() 将字符串转换为对象
escape() 将字符串转换为乱码
unescape() 将乱码转换为正常格式
buffer 模块
buffer 在node.js中是一种数据传输格式(16进制)
创建buffer有三种方式 : 1,直接创建 (读取文件的时候,如果没有指定“utf-8"的格式,默认就是buffer) 2,字符串创建 3,数组创建
fill(参数1,参数2) 可以替换buffer中的值
buffer的连接有两种方式:
1,contant(类似于数组连接) 必须两个buffer同时存在,才能拼成完整的语句
2,StringDecoder 系统提供的方法,会根据buffer的内容自动识别,删除不完整的字的buffer内容
util 模块
util 用于继承原型中的方法(不仅限于父子级),不能继承属性
网友评论