tip:node中的arguments 是一个伪数组对象,用于接收函数调用的时候传递的所有的参数值,并把他们封装到对象中。
- console
用法:①输出到控制台 console.log( )
②格式化输出对象 console.table( )
③计算代码的运行效率(时间) console.time( )
// 计时开始和计时结束,time()中的参数值要一样
console.time("for") // 计时开始
for (let i =0;i<100000000;i++){
}
console.timeEnd("for") // 计时结束
- process
用法:①node版本 process.version
②操作系统架构 (如X64、X32) process.arch
③操作系统平台(win32、win64) process.platform
④当前文件的目录 process.cwd()
⑤当前操作系统配置的环境变量 process.env
⑥当前的进程编号 process.pid
⑦可以停止某个程序的运行 process.kill( ) tip:括号内输入要停止程序的pid值,慎用
- path
用法:需要先引入 const path = require('path')
①用来获取当前文件或者某个文件所在的目录
// 先获取当前文件或者某个文件的完整路径
console.log(__filename)
// 然后使用path模块的dirname()来获取目录
const _dirname = path.dirname(__filename)
console.log(_dirname)
②获取文件的名称 path.basename( )
③获取文件的扩展名 path.extname( )
④路径的拼接或者跳转 path.join( )
// 从当前目录跳回到上一级目录 ..表示上一级目录
const t = path.join(__dirname,'..')
// 拼接多层路径
const t3 = path.join(__dirname,"a","b","c.png")
- fs 需要引入 const fs = require('fs')
用法一:对于文件的操作
①内容写入(会覆盖) fs.writeFile(文件路径,保存内容,回调函数)
const fs = require('fs')
// writeFile指定的文件如果不存在,会自动创建这个文件
// 注意:wirteFile是会覆盖已存在的文件的内容,而不是追加
fs.writeFile('./1.txt',"这个模块非常强大,能够操作文件",(err)=>{
// 判断文件写入操作是否有错误
if(err){
throw err // 抛出错误,给node.js中的引擎处理
}
// 执行后续代码
console.log('写入成功')
})
②文件读取 fs.readFile(文件路径,回调函数)
const fs = require('fs')
const _filename = path.join(__dirname,'1.txt')
fs.readFile(_filename,(err,data)=>{
if(err){
throw err
}
console.log(data.toString())
})
③文件删除 // fs.unlink(文件路径,回调函数)
// 删除文件
const fs = require('fs')
const path = require('path')
// 注意:如果删除不存在的文件,会报错
fs.unlink(path.join(__dirname,'1.txt'),(err)=>{
if(err){
throw err
}
console.log('删除成功')
})
④文件内容的写入(追加) fs.appendFile(文件路径,追加内容,回调函数)
const fs = require('fs')
// 指定的文件如果不存在,会自动创建这个文件
// appendFile不会覆盖已存在的文件的内容,而是追加
// 注意:在指定路径的时候,字符串拼接的问题!!
console.log(__dirname) // D:\node-study\01_module\2_core_module\04_fs\1_file
fs.appendFile(__dirname + '/2.txt',",它可以借助express或者koa2等框架来开发服务器端",(err)=>{
if(err){
throw err
}
console.log('写入追加成功')
})
用法二:对于目录的操作
①创建目录 fs.mkdir(目录的路径,回调函数)
const fs = require('fs')
// 注意:如果创建已经存在的目录,会报错
fs.mkdir("./d1",err=>{
if(err){
throw err
}
console.log('创建目录成功')
})
②读取目录中的内容(文件和目录) fs.readdir(目录路径,回调函数)
拓展内容:获取文件或者目录的详细信息
const fs = require('fs')
// data是一个数组,这数组中的元素是由当前目录下的文件的名称和数组的名称组成的
fs.readdir(__dirname+'/d1',(err,data)=>{
if(err){
throw err
}
// console.log(data)
data.forEach(d=>{
// console.log(d)
// 获取目录或者文件的详细信息
// stat是一个对象,保存了文件或者目录的详细信息。特别关注详细信息中的ctime这个创建时间的字段。使用的时候,需要注意加上8小时才能和我们的时间符合
fs.stat(__dirname + "/d1/" + d,(err,stat)=>{
if(err){
throw err
}
console.log(stat)
// stat.isDirectory() 判断当前读取的是不是目录;
// stat.isFile() 判断读取的是不是文件
if(stat.isDirectory()){
console.log("目录:",d)
console.log("目录信息:",stat)
}else if(stat.isFile()){
console.log("文件:",d)
console.log("文件信息:",stat)
}
})
})
})
③修改目录名称 fs.rename(旧的目录的名称,新的目录名称,回调函数)
const fs = require('fs')
fs.rename(__dirname+'/d1',__dirname+'/d2',err=>{
if(err){
throw err
}
console.log("重命名成功")
})
④删除目录 fs.rmdir(目录路径,回调函数)
const fs = require('fs')
// 注意:目录不为空的时候,不能删除;只有目录为空目录,才能删除
fs.rmdir('./d2',err=>{
if(err){
throw err
}
console.log("删除目录成功")
})
用法三:文件流
const fs = require('fs')
// 1、创建读取流 (读取的内容必须原本就存在)
var readStream = fs.createReadStream('./file2.txt')
// 2、创建写入流
var writeStream = fs.createWriteStream('./file_stream.txt')
// 3、进行写入操作:把读取流通过管道传给写入流
readStream.pipe(writeStream)
- 网络服务模块
主要功能:创建服务器
// 请求 req =>request
// 响应 res => response
const http = require('http')
// 1、创建服务器
const server = http.createServer((req,res)=>{
console.log(req.toString());
res.statusCode =405
res.setHeader('Content-Type','text/plain;charset=utf-8')
res.end('你好,我是node.js服务端')
})
// 2、对外提供服务
const port = 3000
const host = 'localhost'
server.listen(port,host,()=>{
console.log(`服务器运行在http://${host}:${port}`)
})