fs内置模块:实现I/O操作
-
fs.mkdir/ fs.mkdirSync
:创建文件夹,有Sync的是同步创建,反之异步
let fs = require('fs');
fs.mkdir('./less', err => {
if (err) {
console.log(err);
return;
}
console.log('ok');
});
console.log(1);
//=> 1 'ok'
2.fs.readdir / fs.readdirSync
:读取文件目录中的内容
let fs = require('fs');
fs.readdir('./css', (err, result) => {
if (err) {
console.log(err);
return;
}
console.log(result); //=> 返回的结果是一个数组
})
-
fs.rmdir
:删除文件夹
let fs = require('fs');
fs.rmdir('./less', err => { //=> 删除文件夹必须保证文件夹是空的
if (err) {
console.log(err);
return;
}
console.log('ok');
});
4.fs.readFile
:读取文件中的内容
let fs = require('fs');
fs.readFile('./less/1.less', 'utf8', (err, result) => {
//=> 不设置UTF-8编码格式,读取出来的是BUFFER格式的数据,设置后读取到的是字符串格式的数据
if (err) {
console.log(err);
return;
}
console.log(result);
});
-
fs.writeFile
:向文件中写入内容(覆盖写入)
let fs = require('fs');
fs.writeFile('./less/1.less', '哈哈', 'utf8', err => {
if (err) {
console.log(err);
return;
}
console.log('ok');
});
// 1.less
哈哈
-
fs.appendFile
:追加写入新内容(原有的内容还在)
let fs = require('fs');
fs.appendFile('./less/1.less', '哈哈', 'utf8', err => {
if (err) {
console.log(err);
return;
}
console.log('ok');
});
// 1.less
哈哈哈哈
-
fs.copyFile
:拷贝文件到新的位置
let fs = require('fs');
fs.copyFile('./package.json','./less/111.json',err=>{
// 把package.json拷贝到less目录下
if(err){
console.log(err);
return;
}
console.log('ok');
});
-
fs.unlink
:删除文件
let fs = require('fs');
fs.unlink('./less/1.less',err=>{
if(err){
console.log(err);
return;
}
console.log('ok');
});
URL内置模块
url.parse(url[,flag])
:把一个URL地址进行解析,把地址中的每一部分按照对象键值对的方式存储起来
let url = require('url');
console.log(url.parse('https://dnf.qq.com/act/dnf2018?form=qq&lx=game#video'));
{
protocol: 'https:', // 协议
slashes: true, // 是否有斜线
auth: null,
host: 'dnf.qq.com', // 域名+端口
port: null, // 端口
hostname: 'dnf.qq.com', // 域名
hash: '#video', // 哈希值
search: '?form=qq&lx=game', // 问号传递的参数[string]
query: 'form=qq&lx=game', // 问好传递的参数,不包括问号
pathname: '/act/dnf2018', // 请求资源的路径名称
path: '/act/dnf2018?form=qq&lx=game',
href: 'https://dnf.qq.com/act/dnf2018?form=qq&lx=game#video'
}
// 第二个参数默认是FALSE,设置为TRUE可以把问号传参的部分也解析成为对象键值对的方式
console.log(url.parse('https://dnf.qq.com/act/dnf2018?form=qq&lx=game#video', true));
{
...
query: { form: 'qq', lx: 'game' }
...
}
HTTP内置模块
createServer(callback)
:创建web服务
callback中含有两个参数req和res,分别表示请求对象和响应对象
// 使用http模块创建web服务
let server = http.createServer(); //=> 创建WEB服务
server.listen(); //=> 监听端口
// 演示
let http = require('http');
let port = 6666;
http.createServer((req, res) => { // 服务创建成功且接收请求时触发
//=>REQ:REQUEST 请求对象,包含了客户端请求的信息
// req.url 存储的是请求资源的路径地址及问号传参
// req.method 客户端请求的方式
// req.headers 客户端的请求头信息,它是一个对象
let { url, method, headers } = req;
console.log(url, method, headers);
//=>RES:RESPONSE 响应对象,包含了一些属性和方法,可以让服务器端返回给客户端内容
// res.write 基于这个方法,服务器端可以向客户端返回内容
// res.end 结束响应
// res.writeHead 重写响应头信息
res.end('23333');
}).listen(port, () => { // 服务创建成功,且端口号监听成功(不被占用)时触发
console.log(`The server is created at port ${port}`)
})