正常情况下通过读取流方式读出来的就是正确json数据
摆在请求里面,同样的代码,为什么流是空的,ReadStream的end事件是触发的,ReadStream的data事件貌似没有触发。
请大家帮帮忙看下这个。
个人猜测会不会是文件路径的问题
@yuezm 不是,我通过log看了路径都是一样的
const fs = require('fs') require('http').createServer((req,res)=>{ let data = '' fs.createReadStream('./data.json') .on('data',chunk=>data+=chunk) .on('end',()=>{ console.log('end') console.log(data) res.end(data) }) }) .listen(8080,function(){ console.log(`server listen on ${this.address().port}`) })
尝试重现, 没有重现出来, 应该是路径问题 fs.createReadStream('./data.json')是相对于 process..cwd() 目录的, 如果获取当前文件的文件夹下的 ./data.json, 需要加上 __dirname 路径 fs.createReadStream(path.join(__dirname,'./data.json'))
fs.createReadStream('./data.json')
process..cwd()
./data.json
__dirname
fs.createReadStream(path.join(__dirname,'./data.json'))
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
个人猜测会不会是文件路径的问题
@yuezm 不是,我通过log看了路径都是一样的
尝试重现, 没有重现出来, 应该是路径问题
fs.createReadStream('./data.json')是相对于process..cwd()目录的, 如果获取当前文件的文件夹下的./data.json, 需要加上__dirname路径fs.createReadStream(path.join(__dirname,'./data.json'))