Node常用模块——2.fs模块

fs模块用于对系统文件及目录进行读写操作,使用如下:

require('fs')

1.引入模块和读取文件

readFile是异步操作
···
const http=require('http');
const fs=require('fs');

let server=http.createServer((req, res)=>{
//读取www下的文件,req.url自带“/”
//url为:http://localhost:8080/1.txt
fs.readFile(www${req.url}, (err, data)=>{
if(err){
res.write('404'); //?
}else{
res.write(data);
}
// 因为readFile是异步,可能write执行晚于end,报错,所以,end放入readFile
res.end();
});
});
server.listen(8080);
···
异步报错

events.js:167
      throw er; // Unhandled 'error' event
      ^

Error [ERR_STREAM_WRITE_AFTER_END]: write after end
    at write_ (_http_outgoing.js:572:17)
    at ServerResponse.write (_http_outgoing.js:567:10)
    at fs.readFile (F:\study\node\www\2019-2-22\0-server2.js:9:11)
    at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:37:12)
Emitted 'error' event at:
    at writeAfterEndNT (_http_outgoing.js:634:7)
    at process._tickCallback (internal/process/next_tick.js:63:19)

2.buffer格式

高级语言一般不善于处理二进制
如下文件的直接读取,获得的是buffer格式的,bufffer格式是十六进制的

fs.readFile('1.txt', (err, data)=>{
  if(err){
    console.log('有错');
  }else{
    console.log(data);
    //console.log(data.toString()); //转换成字符串
  }
});
//<Buffer 61 64 73 66 61 73 64 66 61 64 73 66 0d 0a>

3.写文件

格式 fs.writeFile(文件,内容,function)

fs.writeFile('3.txt', 'erqwreqwere', err=>{
  if(err){
    console.log(err);
  }else{
    console.log('成功');
  }
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容