IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 10.11 nodejs扩展1 -> 正文阅读

[JavaScript知识库]10.11 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
? ? }
? ]
}

运行结果:

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:20:30  更:2021-10-12 23:22:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 2:04:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码