NODE常用内置模块

fs内置模块:实现I/O操作

  1. 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);  //=> 返回的结果是一个数组
})
  1. 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);
});
  1. fs.writeFile:向文件中写入内容(覆盖写入)
let fs = require('fs');
fs.writeFile('./less/1.less', '哈哈', 'utf8', err => {
    if (err) {
        console.log(err);
        return;
    }
    console.log('ok');
});

// 1.less
哈哈
  1. fs.appendFile:追加写入新内容(原有的内容还在)
let fs = require('fs');
fs.appendFile('./less/1.less', '哈哈', 'utf8', err => {
    if (err) {
        console.log(err);
        return;
    }
    console.log('ok');
});

// 1.less
哈哈哈哈
  1. 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');
});
  1. 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}`)
})

你可能感兴趣的:(NODE常用内置模块)