node读文件

node实现读取文件内容

const fs =require('fs')
const path  = require('path')

fs.readFile(path.join(__dirname,'文件相对路径'),'utf-8',(err,dataStr)=>{
    if(err) throw err
    console.log(dataStr)
})

读取文件封装(共用一个回调)

//规则:参数是(err,data) 假如读取数据失败 调用回调函数的第一个参数是err第二个参数是undefined(可以不用写)
假如读取文件成功 回调的第一参数是null第二个参数是data

function getFileByPath(fpath,callback) {
    fs.readFile(fpath,'utf-8',(err,dataStr)=>{
        if(err) return callback(err,undefined)

        callback(null,dataStr)
    })
}
//调用
getFileByPath(path.join(__dirname,'./files/3.txt'),(err,dataStr)=>{
    // console.log(dataStr)
    if(err) return console.log(err.message)
    console.log(dataStr)
})

读取文件封装(使用两个回调)

由于异步操作不能由return返回结果,所以使用回调函数来返回

const fs =require('fs')
const path  = require('path')

FilePath = path.join(__dirname,'./files/1.txt')

function getFileByPath(fpath,succCb,errCb) {
    fs.readFile(fpath,'utf-8',(err,dataStr)=>{
        if(err) return errCb(err,undefined)

        succCb(dataStr)
    })
}

getFileByPath(FilePath,function (data) {
    console.log(data+"成功了")
},function (err) {
    console.log("读取失败"+err.message)
})

地狱回调(回调函数多层嵌套)

实例:需要按顺序读取文件 1 2 3
实现:

getFileByPath(FilePath,function (data) {
    console.log(data)
    getFileByPath(FilePath2,function (data) {
        console.log(data)
        getFileByPath(FilePath3,function (data) {
            console.log(data)
        })
    })
})
发布了103 篇原创文章 · 获赞 5 · 访问量 2251

猜你喜欢

转载自blog.csdn.net/weixin_42452726/article/details/102593741