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('成功');
  }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章