buffer
创建buffer对象的方法
-
直接创建长度为12的代码
var buff = new Buffer(12);//创建长度为12 console.log(buff); buf1.fill(255,0); //fill(填充的值,开始位置,结束位置(没有既全部)); console.log(buff);
-
通过数组
var buff = new Buffer([1,255,0xb3]); console.log(buff);
-
通过字符串
var buff = new Buffer(“你好”); console.log(buff);
-
将buffer转成字符串通过toString
var buff = new Buffer([0xe5, 0x94, 0x90, 0xe8, 0x8f, 0x9c, 0xe4, 0xb9, 0x9f]); console.log(buf4.toString())
-
Node中推荐使用的方式
var buff = new Buffer([0xe5, 0x94, 0x90, 0xe8, 0x8f, 0x9c, 0xe4, 0xb9, 0x9f]); var buff = new Buffer([0xe5, 0x94, 0x90, 0xe8, 0x8f]); var buff = new Buffer([0x9c, 0xe4, 0xb9, 0x9f]); console.log(buf4.toString()); console.log(buf5.toString()); //占用的内存高 //console.log(Buffer.concat([buf4,buf5]).toString()); //Node中推荐使用的方式 var StringDecoder=require(“string_decoder”).StringDecoder; var decoder = new StringDecoder(); console.log(decoder.write(buff)); console.log(decoder.write(buff));
fs
//文件操作基于(fs模块) 1.文件的操作,2.文件夹的操作(目录的操作)
//文件的操作
var fs=require("fs");
创建
fs.writeFile("2.txt","我是2.txt文件",{flag:"a"},function (err) {
if(err){
console.log(err);
}else{
console.log("写入成功");
}
});
追加内容,同步异步方法一样,所有同步的函数都是函数后面加 Sync
异步
fs.appendFile("2.txt","我是追加的内容",function (err) {
if(err){
console.log("写入错误")
}else{
console.log("写入成功");
}
})
同步
var res=fs.appendFileSync("2.txt","我是追加的内容");
console.log(res);
文件的读取
fs.readFile("1.txt",function (err,data) {
if(err){
console.log(err);
}else{
console.log(data);
//把buffer转化成字符串
console.log(data.toString())
}
})
文件的修改
fs.rename("1.txt","5.txt",function (err) {
if(err){
return console.log(err);
}else{
console.log("修改成功");
}
})
文件删除
fs.unlink("2.txt",function (err) {
if(err){
return console.log(err);
}else{
console.log("删除成功");
}
})
复制
fs.readFile("5.txt",function (err,data) {
if(err){
console.log(err)
}else{
fs.writeFile("1.txt",data,{flag:"w"},function (err) {
if(err){
console.log(err)
}else{
console.log("复制成功");
}
})
}
})
文件夹的操作
目录创建
mode 的三个数字,分别表示owner(所有者),group(组用户),others(其他用户)所具有的权限。
1 = x 执行 2 = w 写 4 = r 读,比如owner具有所有权限,1+2+4=7, 又比如group 具有读 和执行权限 1+4 = 5
fs.mkdir("11","0777",function (err) {
if(err){
return console.log(err);
}else{
console.log("创建成功");
}
})
修改文件夹权限
fs.chmod("11",0777,function (err) {
if(err){
return console.log(err);
}else{
console.log("修改成功");
}
})
fs.chmod("22",0777,function (err) {
if(err){
return console.log(err);
}else{
console.log("修改成功");
}
})
修改文件夹名
fs.rename("11","33",function (err) {
if(err){
console.log(err);
}else{
console.log("修改文件夹名成功");
}
})
判断文件或者文件夹是否存在
fs.exists("22",function (exists) {
if(exists){
return console.log("文件夹已经存在");
}else{
fs.mkdir("22",0777,function (err) {
if(err){
return console.log(err);
}else{
console.log("创建成功");
}
})
}
})
文件夹删除,只能删除空文件夹
fs.rmdir("22",function (err) {
if(err){
console.log(err);
}else{
console.log("删除成功");
}
})
读取文件夹
fs.readdir("22",function (err,data) {
if(err){
console.log(err)
}else{
console.log(data);
}
})
显示文件的详细信息
针对详细信息来判断是否是文件夹
fs.stat("22",function (err,data) {
if(err){
console.log(err)
}else{
console.log(data);
// 判断是否是文件
var res=data.isFile();
//判断是否是文件夹
// data.isDirectory()
if(res){
console.log("是文件");
}else{
console.log("是文件夹")
}
}
})
删除文件夹的函数
function removeDir(src) {
//获取文件夹的内容
var arr= fs.readdirSync(src);
console.log(arr);
//判断是否是文件,如果是文件删除,是文件夹,在执行相同函数
for(var i=0;i
stream
var http=require("http");
var fs=require("fs");
var url=require("url");
var server=http.createServer(function (req,res) {
var pathname=url.parse(req.url,true).pathname;
if(pathname=="/" || pathname=="index"){
var rs=fs.createReadStream("index.html");
rs.pipe(res);
}else if(pathname=="/goods"){
var rs=fs.createReadStream("good.html");
rs.pipe(res);
}else if(pathname!="/favicon.ico"){
var rs=fs.createReadStream("."+pathname);
rs.pipe(res);
}
});
server.listen(8888);
sxpress
var express = require("express");
var app = express();
var querystring = require("querystring");
var bodyParse = require("body-parser");
app.use(bodyParse.urlencoded({
extended:true
}));
app.get("/",function(req,res){
// res.send("我是主页
");
// 加载post提交页面
res.sendFile(__dirname+"/post.html");
})
app.get("/goods",function(req,res){
res.send("我是商品页
");
})
app.post("/post",function(req,res){
// var str = "";
// req.on("data",function(chunk){
// str+=chunk;
// })
// req.on("end",function(){
// var data = querystring.parse(str);
// console.log(data);
// res.send(`姓名是:${data.username} 年龄 是:${data.age}
`);
// })
//通过body-parse获取到参数
console.log(req.body);
res.send(`姓名是:${req.body.username} 年龄是:${req.body.age}
`);
})
app.get("/get",function(req,res){
var data = req.query;
res.send(JSON.stringify(data));
})
app.get("/test/:id/:name",function(req,res){
var str = `id的值是:${req.params.id};姓名是:${req.params.name}
`;
res.send(str);
})
//get请求或者是post请求
app.all("/*",function(req,res){
var pathname = req._parsedUrl.pathname;
if(pathname!="favicon.ico"){
res.sendFile(__dirname+pathname);
}
});
app.listen(9898);
cookie
var express=require("express");
var cookieParser=require("cookie-parser");
var app=express();
app.use(cookieParser());
//设置cookie
app.get("/setcookie",function(req,res){
var nowTime=new Date();
nowTime.setDate(nowTime.getDate()+7);
console.log(nowTime);
res.cookie("username","zhangsan",{expires:nowTime});
res.send("设置cookie");
})
app.get("/getcookie",function(req,res){
var username=req.cookies.username;
res.send(`取到cookie内容是:${username}`)
})
app.listen(9001);
session
var express=require("express");
var session=require("express-session");
var app=express();
app.use(session({
secret:"mysecret",
resave:false,
saveUninitialized:true
}));
app.get("/setsession",function(req,res){
req.session.username="zhang";
res.send("session设置成功");
})
app.get("/getsession",function(req,res) {
var username=req.session.username;
res.send("session的内容是:"+username);
})
app.listen(8985);
next
var express=require("express");
var app=express();
app.use(function(req,res,next){
//省政府
req.money=100;
next();
})
app.use(function(req,res,next){
//市政府
req.money-=20;
console.log(req.money);
next();
})
app.use(function(req,res,next){
//区政府
req.money="钱丢了";
next();
})
app.use(function(err,req,res,next){
if(err){
console.log(err);
}
})
app.all("/",function(req,res){
console.log(req.money);
res.send(""+req.money);
})
app.listen(8765);