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)
})
})
})
上一篇: getline函数读文件