欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

node读文件

程序员文章站 2022-04-08 17:09:29
...

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)
        })
    })
})
相关标签: 读文件 node