1. 程式人生 > >NodeJs TypeError: First argument must be file descriptor解決方法

NodeJs TypeError: First argument must be file descriptor解決方法

         最近在學習NodeJs,在練習一個例子的時候發現老是報:TypeError: First argument must be file descriptor,程式碼如下:

var fs=require('fs');
var buf=new Buffer('我喜愛程式設計');
fs.open('./anotherMessage.txt','wx',function(err,fd){
fs.write(fd,buf,0,15,0,function(err,written,buffer){
if(err) console.log('寫檔案操作失敗。');
else console.log("寫檔案操作成功。");
fs.fsync(fd);
fs.close(fd);
});
});

        fs.write方法明明有“fd”這個檔案描述,為何偏偏報這個錯,原來是因為anotherMessage.txt檔案在我本地已經存在了,fs.write這個方法在執行的時候會檢測該檔案是否已經存在了,如果已經存在便會報這個錯誤,解決辦法也就很簡單了,那就是先刪掉本地該檔案,然後再執行就成功了,如下所示。

TypeError: First argument must be file descriptor
    at TypeError (native)
    at Object.fs.write (fs.js:760:20)
    at E:\ProgramFiles\nodejs\app.js:4:5
    at FSReqWrap.oncomplete (fs.js:123:15)

E:\ProgramFiles\nodejs>node app.js
寫檔案操作成功。

E:\ProgramFiles\nodejs>