nodejs扩展1

写入文件

// 追加写入
fs.appendFile('./a.txt', 'abcdef', err=>{
    if(!err){
        console.log("成功");
    }
})
console.log(1111);

//同步写入
fs.appendFileSync('./a.txt', 'hello nodejs')
console.log("成功");
console.log(1111);

运行结果:

// 判断指定的文件是否存在的
let bool = fs.existsSync('./b.txt')
console.log(bool);//false or true

// 删除文件 - unlink
fs.unlinkSync('./a')

获取指定文件的文件信息

fs.stat('./a.txt', (err, info)=>{
    if(!err){
        console.log(info);
        console.log(info.size); // 文件大小 - 单位字节数
        // console.log( info.__proto__ );
        // console.log( info.__proto__.__proto__ );
        let bool1 = info.isDirectory() // 判断当前文件路径是否是一个目录 - 文件夹
        console.log(bool1);
        let bool = info.isFile() // 判断当前文件路径是否是一个文件
        console.log(bool);
    }
})

运行结果:

os:系统相关的操作

const os = require('os')
// EOL - 结束当前行的 === end of line - 等同于一个换行
console.log( '111' + os.EOL + '222' );
// cpus() - 显示当前计算机的cpu信息
console.log( os.cpus() );
// memery - 内存
// totalmem - 总内存
console.log( os.totalmem() );  // 单位字节
// 1G = 1024MB
// 1MB = 1024KB
// 1KB = 1024B
// freemem() - 可用内存 - 空闲内存
console.log( os.freemem() );
// hostname() - 设备名称
console.log( os.hostname() );
// type() - 系统类型
console.log( os.type() );

运行结果:

path模块用于处理文件和目录(文件夹)的路径

const path = require('path')
let url = 'file:///D:/h5-2113/gulp1/wwt2113project/list.html?id=6&age=12'
// // path.basename() - 获取文件名称
console.log( path.basename(url) );
// // path.dirname() - 获取到路径中的文件目录部分
console.log( path.dirname(url) );
// // path.extname() - 文件的扩展名 - 后缀
console.log( path.extname(url) );
// path.join() - 将多部分字符串组成一个路径
console.log( path.join('a', 'b', 'c') ); // a/b/c
// nodejs全局内置了 __dirname 变量 - 当前正在执行的文件路径中的目录部分
console.log( __dirname );
// let uri = __dirname + '/test.html'
let uri = path.join(__dirname, 'test.html')
console.log(uri);
// path.resolve() - 拼接路径 - 一般会使用完整的url进行操作 - 功能跟path.join一样 - 结果是一个绝对路径
console.log( path.resolve('a', '../b', 'c') );
console.log( path.join('a', '../b', 'c') );

运行结果:

url:处理网址

const url = require('url')
// parse - 解析整个网址
let uri = "http://127.0.0.1:5500/test.html?id=5&age=6#top"
// 解析
let obj = url.parse(uri)
console.log(obj);
let uri1 = "http://127.0.0.1:5500/a/b/c/test.html"
// resolve - 像path.resolve - 拼接
let newUrl = url.resolve(uri1, '../abc.txt')
console.log(newUrl);

运行结果:

querystring - 解析对象和字符串

const qs = require('querystring')
let data = {
    name:"张三",
    age:12
}
// name=张三&age=12
// let str = qs.encode(data) // 将对象转成 需要传送的数据 - 查询字符串
let str = qs.stringify(data)
console.log(str);
// 将查询字符串转成对象
// let obj = qs.decode(str)
let obj = qs.parse(str)
console.log(obj);

// 获取到请求路径中的数据 - qs.decode(url.parse(地址).query) 
//encode和decode是一组  stringify和parse是一组

运行结果:

获取请求参数:

const url = require('url')
const querystring = require('querystring')
require('http').createServer((req, res)=>{
    // 获取请求主体
    // get请求的数据
    console.log(req.url); 
    // 从req.url中获取数据部分 - url.parse
    let obj = url.parse(req.url)
    let query = obj.query
  // 用querystring的parse方法或decode方法解析查询字符串
    let result = querystring.parse(query)
    console.log(result);
    // 获取post请求的参数
    // 给req绑定获取数据的事件
    let str = '';
    req.on('data',chunk=>{ // chunk指的是每次获取的一丢丢的数据
        // console.log(chunk);
        str += chunk.toString()
    })
    // 给req绑定获取数据完成的事件
    req.on('end', ()=>{
        // 当所有数据都接收完成以后,会执行这里的代码
        console.log(str);
    })
    res.end()
}).listen(3000)

运行结果:get请求接收的信息

补充:

anywhere:可以在任何一个地方,快速启动http服务器

json-server text.json 命令

//text.json文件
{
  "users": [
    {
      "id": 1,
      "username": "张三",
      "password": "123456"
    },
    {
      "id": 2,
      "username": "李四",
      "password": "123123"
    }
  ],
  "goods": [
    {
      "name": "手机",
      "price": 50
    },
    {
      "name": "电脑",
      "price": 300
    }
  ]
}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值