node.js2
同步是指:同步阻塞操作,异步是指:异步非阻塞操作。
第一部分:fs模块
1.引入fs模块
- require('fs');
2.写文件
01.异步写:writeFile
fs.writeFile(path,data[,option],callback)
path:文件路径
data:写的内容,string/buffer
option:配置参数:比如:{encoding:'utf8'}
callback(err):回调函数
//异步写入文件
function writeFile(){
fs.readFile('./www/404.html',function(err,data){
console.log("读取的内容",data)
fs.writeFile('./test.txt',data,{encoding:"utf8"},function(err){
if(err){
console.log("内容写入失败")
throw err
}
console.log("内容写入成功")
})
})
}
writeFile();
02.同步写:writeFileSync
fs.writeFileSync(path,data[,option])
//同步写入内容
function writeFileSync(path){
var result =fs.writeFileSync(path,"测试文本......");
if(!result){
console.log("内容写入成功")
}
}
writeFileSync('./test.txt')
3.追加内容
01.异步追加内容:appendFile
- fs.appendFile(path,data[,option],callback)
02.同步追加内容:appendFileSync
- fs.appendFileSync(path,data[,option])
4.创建文件夹
01.异步:mkdir
- fs.mkdir(path,callback)
02.同步:mkdirSync
- fs.mkdirSync(path)
5.读文件
01.异步读取:readFile
- fs.readFile(path,callback)
- path:文件路径
- callback(err,data):读取的buffer
02.同步读取:readFilerSync
- fs.readFile(path)
6.读文件夹
01.异步读取:readdir
- fs.readdir(path,callback)
02.同步读取:readdirSync
- fs.readdirSync(path)
7.判断文件/文件夹是否存在
01.异步判断:exists
fs.exists(path,callback)
callback(res):回调,res:true/false
//异步判断
function fileExists(path){
fs.exists(path,function(res){
//res boolean值表示存在或是不存在
console.log("判断结果",res); })
}
fileExists("./js");
02.同步判断:existsSync
- fs.existsSync(path)
8.删除文件/文件夹
删除文件:unlink/unlinkSync
删除文件夹:rmdir/rmdirSync
//fs.redir不能删除非空文件夹
function removeDir(dirName){
fs.rmdir(dirName,function(res){
//如果删除成功,则res为null
console.log("操作结果",res)
})
}
removeDir("./css")
9.更改文件/文件夹路径
01.异步:rename
- fs.rename(oldpath,newpath,callback)
02.同步:renameSync
- fs.renameSync(oldpath,newpath)
10.监听文件夹
- fs.watch(dirname,listener)
- dirname:文件路径
- listener(curr,prev)
- curr:当前文件
- prev:之前文件
- fs.unwatchFile(filename,listener)
11.其他
获取物理路径:realpath(path,callback(err,resolvePath))/realpathSync(path)
获取文件信息:stat(path,callback(err,stat))
打开文件:fs.open(path,flags,callback(err,fd))
flags:r 以读取模式打开文件。如果文件不存在抛出异常。
r+ 以读写模式打开文件。如果文件不存在抛出异常。
rs 以同步的方式读取文件。
rs+ 以同步的方式读取和写入文件。
w 以写入模式打开文件,如果文件不存在则创建。
wx 类似 'w',但是如果文件路径存在,则文件写入失败。
w+ 以读写模式打开文件,如果文件不存在则创建。
wx+ 类似 'w+', 但是如果文件路径存在,则文件读写失败。
a 以追加模式打开文件,如果文件不存在则创建。
ax 类似 'a', 但是如果文件路径存在,则文件追加失败。
a+ 以读取追加模式打开文件,如果文件不存在则创建。
ax+ 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。
写文件:fs.write(fd,buffer,offset,length,position,callback(err,bytes))
读文件:fs.read(fd,buffer,offset,length,position,callback(err,bytes))
关闭文件:fs.close(fd,callback(err))
第二部分:模板
1.用于解析,生成,拼接url
2.http://127.0.0.1:3000/list.html?aa=10&bb=20#/ddd
- 如果为true,则url.query={aa:10,bb:20}
- 如果为false,则url.query='aa=10&bb=20'
3.url实体字段:
- protocol:协议
- host:主机,包含端口
- hostname:主机名
- port:端口
- .hash:hash参数
- search:?参数
- query:url参数
- pathname:路径
- path:含参数的路径
- href:完整链接
第三部分:querystring
parse(querystr,sep,eq,option)
- option:maxKeys:1000
- sep:参数之间的分隔符
- eq:参数的赋值连接符
stringify(obj,sep,eq,option)
escape
- 解码
unescape
- 解码
第四部分:path
normalize:
- 标准化路径
- 生成物理路径
join
- 整合路径
- join(path1,path2,...)
resolve
- 解析为绝对路径
- resolve(cd1,cd2,cd3,....)
- 相当于一次次的调用cd命令
relative
- 解析相对路径
- relative(from,to)
- 解析从from到to的相对路径
- from为文件夹路径
dirname
- 路径所在文件夹路径
- dirname(path)
basename
- 路径的最后一部分
- basename(path[,ext])
- ext:想要去掉的文件后缀名
extname
- 后缀名
- extname(path)
sep
- 获取平台的文件路径分隔符
- path.sep
delimiter
- 获取平台的路径分割符,比如c:\ ;
- path.delimiter
第五部分:路径的系统变量
- __dirname
- 当前文件夹
- __filename
- 当前执行文件的完整路径
node.js2的更多相关文章
- Web前端开发推荐阅读书籍、学习课程下载
转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...
- babeljs源码
babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof mo ...
- Vue-cli+Vue.js2.0+Vuex2.0+vue-router+es6+webpack+node.js脚手架搭建和Vue开发实战
Vue.js是一个构建数据驱动的web界面的渐进式框架.在写这边文章时Vue版本分为1.0++和2.0++,这个是基于Vue2.0的项目. Vue-cli是构建单页应用的脚手架,这个可是官方的. Vu ...
- Node学习
参见Node入门 做出node应用的第一个例子 图片上传浏览.
- node vue
官网 ECMAScript 6 Node.Js WebPack Vue.js Vuex Vue-loader (类比css-loader,是webpack中用于处理.vue文件的) vue-route ...
- Node.js 初识2
原文:https://www.cnblogs.com/zzuIvy/p/nodejs_1.html 测试:node.js部署网站 1.创建js2.js var http = require('http ...
- Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)
(五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...
- 在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_102 这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广 ...
- NPM (node package manager) 入门 - 基础使用
什么是npm ? npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 截至 ...
随机推荐
- POJ3180:The Cow Prom——题解
http://poj.org/problem?id=3180 英文题以后都不粘贴题面. 大意:求点数大于1的强连通分量个数 #include<stack> #include<cstd ...
- HDU.1233 还是畅通工程(Prim)
HDU.1233 还是畅通工程(Prim) 题意分析 首先给出n,代表村庄的个数 然后出n*(n-1)/2个信息,每个信息包括村庄的起点,终点,距离, 要求求出最小生成树的权值之和. 注意村庄的编号从 ...
- jsp电子商务购物车之五 数据库存储篇2
业务逻辑图,简单版要写各个Servlet //ChangeCartCountServlet 使用ajax实现数量,增加或减少; package com.cart.web; import java.io ...
- 直通BAT面试算法精讲课 --动态规划
1.有数组penny,penny中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法. 给定数 ...
- 剑桥offer(11~20)
11.题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. class Solution { public: int NumberOf1(int n) { ; unsigned ...
- TextToast -- 自定义Toast源码
import android.content.Context;import android.graphics.Color;import android.graphics.PixelFormat;imp ...
- ContentProvider学习
1.创建类继承ContentProvider类,并实现增.删.改.查功能. public static final String AUTHORITY = "com.diysoul.lists ...
- HDU 3277 最大流+二分
Marriage Match III Time Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- async/await 里的并行和串行
我们在使用 async/await 语法时,有时会这样用: function getName () { return new Promise((resolve, reject)=>{ setTi ...
- ListView - SimpleAdapter 行间颜色交替(转)
一.概述 通过扩展SimpleAdapter,来改变显示外观.因为要每行的显示颜色,首先要获得每行的View实例,然后调用setBackgroundColor函数设置. 二.实例 [效果] [代码片段 ...