写入文件
// 追加写入
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
? ? }
? ]
}
运行结果:
|