我一直在處理這個很長一段時間,所以任何幫助,非常感謝。所以,我正在下載一個文件並使用PhantomJS和CasperJS進行保存。讓我指出他們不是問題。該文件下載沒有問題。NodeJS fs.open在現有文件上失敗(不是路徑問題)
問題是NodeJS在下載後不會識別或打開文件。我不能fs.stat,fs.open等。沒有任何工作。
筆者給大家介紹的第二個代碼,但這裏的日誌:
Here: bdTcK6hSdownload.csv
[ '2puzZMeLdownload.csv',
'2s5ICbKNdownload.csv',
'bdTcK6hSdownload.csv',
'izIfagwCdownload.csv' ]
fs.js:230
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
Error: ENOENT, no such file or directory './caspertemp/bdTcK6hSdownload.csv'
at Object.openSync (fs.js:230:18)
at Object.processCSV (/Users/Home/dev/node_modules/inviter/index.js:64:29)
at /Users/Home/dev/node_modules/inviter/index.js:36:33
at ChildProcess.exithandler (child_process.js:281:7)
at ChildProcess.emit (events.js:70:17)
at maybeExit (child_process.js:361:16)
at Process.onexit (child_process.js:397:5)
正如你所看到的,我打印出所創建的文件名,然後打印目錄的內容,然後試圖打開文件。如您所見,bdTcK6hSdownload.csv存在於目錄中,但未能打開。
簡單的代碼片段是在這裏:
console.log('Here: ' + filename);
filenames = fs.readdirSync('./caspertemp/');
console.log(filenames);
var fd = fs.openSync('./caspertemp/' + filename, 'r');
console.log(fd);
有一堆前後這更回事,但沒有它的重要,因爲這基本功能失效。請幫忙!這已經持續了數週。
嗯。你有沒有檢查權限?另外,運行node.js像這樣: strace ./node - 這將跟蹤所有系統調用,並且您正在查找open(),檢查節點正在使用的路徑等。這將告訴您節點進程實際上在做什麼。 – EdH 2012-02-03 20:42:25
@EdH 。對於權限是的。所有文件都有相同的權限: '-rw-r - r-- 1本地員工216102 Feb 3 15:00 bdTcK6hSdownload.csv' 同樣值得注意的是,如果我重新啓動節點,我可以訪問文件沒有問題 – Brandon 2012-02-03 21:13:07
@ EdH.Hmm,由於某種原因,我無法在strace模式下運行:mac:dev Home $ strace -fF -o strace.lo g節點app.js -bash:strace:命令沒有找到 - 不知道我在做什麼錯誤的命令 – Brandon 2012-02-03 21:48:48