nodejs day2

文件操作(nodejs内置模块的应用练习同步异步读取文件的区别:const fs = require('fs')// 先试一试同步读取文件let dirs = fs.readdirSync('./')console.log(dirs)//异步读取方式 错误的回调优先fs.readdir('../nodejs',(err,data)=>{ // console.log(e...
摘要由CSDN通过智能技术生成

文件操作(nodejs内置模块的应用练习

同步异步读取文件的区别:
const fs = require('fs')
// 先试一试同步读取文件
let dirs = fs.readdirSync('./')
console.log(dirs)
//异步读取方式 错误的回调优先
fs.readdir('../nodejs',(err,data)=>{
    // console.log(err)
    // console.log(data)
    if(err){
        console.log('读取失败,请重新检查目录')
    }else{
        console.log(data)
    }
});

tips: 在回调函数中第一个参数表示错误对象 默认为空null 如果出现错误err就是实体对象

//同步方法与异步方法的区别:
/**********************************************/
let dirs = fs.readdirSync('./无效路径')
	console.log(233333)// 此时用同步操作233333不打印
	console.log(dirs)

//如何用同步方法虽然程序出错但是继续执行到结束呢?
try {
    let dirs = fs.readdirSync('./无效路径')
    console.log(dirs)
} catch (error) {
    console.log('!!!!!!出错了!!!!!!')
    console.log(error)
}
    console.log(233333)//try catch后 此时233333打印了


//然后再看异步操作
fs.readdir('./无效目录',(err,data)=>{
    // console.log(err)
    // console.log(data)
    if(err){
        console.log('读取失败,请重新检查目录')
    }else{
        console.log(data)
    }
})
console.log(233333)//此时无trycatch 233333输出了

小总结:对于错误处理有两种情况 同步 异步
同步里面关键步骤要trycatch一下
异步需要回调函数 错误的回调优先

文件操作
// 文件操作 curd  create update read delete
const fs = require('fs')
fs.mkdir('mkdirtest',(error , data)=> {
    console.log(error)
    console.log(data)//此行会输出undefined 那么为什么readdir 有俩参数
    // mkdir只有一个参数呢?mkdir只有俩结果要么创建成功要么失败 读取文件你要知道读了啥
})
//文件更改
fs.rename('./mkdir.js','./mkdirtest.js',(err)=>{
    if(err){
        console.log(err)
        console.log('失败')
    }else{
        console.log('更改成功')
    }
})
//文件删除
fs.rmdir('./mkdirtest',(err)=>{
    if (err) {
        console.log('删除失败')
        console.log(err)
        
    }else{
        console.log('OJBKKK')
    }
})//此方法只能删除空文件夹

//如何删除文件夹及其中的所有文件呢? 这是网上的通过调用cmd命令来删除 但我没跑通..还有乱码 打个mark 日后再研究
var exec = require('child_process').exec;
var cmdStr = 'rm -rf ./mkdirtest';
exec(cmdStr, function (err, data) {
  if (err) {
    console.log(err);
  } else {
    console.log(data);
  }
});
文件的两种写入方法:
  • 直接write覆盖
const fs = require('fs')
// 创建文件 覆盖写入
fs.writeFile('./filetest.txt','today is the nice day',(err)=>{
    console.log(err)
})
  • 追加文件内容
// 追加写入
fs.appendFile('./filetest.txt',
',but i wanna fk the world',(err)=>{
    console.log(err)
  • 读文件
//读取
fs.readFile('./filetest.txt',(err,msg)=>{
    console.log(err)
    console.log(msg.toString('utf-8'))
    //默认二进制数据流的buffer 可以在toString加入编码方式参数
})
  • 删除文件
fs.unlink('./filetest.txt',(err)=>{
    console.log(err)
})
文件列表的输出
const fs = require('fs')
//读取文件列表
fs.readdir('../nodejs',(err,dirs)=>{
    for (let index = 0; index < dirs.length; index++) {
        const code = dirs[index];
        console.log(code)
    }
    console.log(err)
})
//判断是否是文件 还是文件夹
fs.stat('../nodejs',(err,status)=>{
    if (status.isFile()) {
        console.log('是文件')
    }else{
        console.log('是dir')
    }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当出现nodejs版本匹配问题时,可以通过以下步骤解决: 1. 首先,查看你当前使用的nodejs版本。在终端中输入 "node -v" 命令可以得到当前的nodejs版本号。 2. 访问nodejs官方网站 https://nodejs.org/ ,在该网站中你可以找到所有可用的nodejs版本。 3. 检查你的npm的版本。在终端中输入 "npm -v" 命令可以得到当前的npm版本号。 4. 确保你的nodejs和npm版本是兼容的。你可以在nodejs官方网站的下载页面(https://nodejs.*** 如果你的nodejs和npm版本不匹配,你可以使用npm命令来安装匹配的npm版本。在终端中执行 "npm install -g npm@<desired-npm-version>" 命令来安装特定版本的npm。比如,如果你的node版本是10.15.1,对应的npm版本是6.4.1,你可以执行命令 "npm install -g npm@6.4.1"。 6. 安装完成后,再次检查nodejs和npm的版本,确保它们已经匹配。 通过上述步骤,你可以解决nodejs版本匹配问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [nodejs和npm版本不匹配的一种处理方式](https://blog.csdn.net/wltian/article/details/114970221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [关于node js和 npm 版本不匹配的情况](https://blog.csdn.net/whatday/article/details/105069223)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值