Doświadczyłem tego od dłuższego czasu, więc każda pomoc jest bardzo cenna. Tak więc, pobieram plik i zapisuję go za pomocą PhantomJS i CasperJS. Pozwolę sobie wskazać, że nie są one problemem. Plik jest pobierany bez problemu.NodeJS fs.open nie działa na istniejącym pliku (nie dotyczy ścieżki)
Problem polega na tym, że NodeJS nie rozpoznaje ani nie otwiera pliku po jego pobraniu. Nie mogę fs.stat, fs.open, itp. Nic nie działa.
będę dzielić kod w drugim, ale oto log:
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)
Jak widać, jestem drukując utworzoną nazwę pliku, a następnie drukowanie zawartości katalogu, a następnie próbuje otworzyć plik. Jak widać, plik bdTcK6hSdownload.csv istnieje w katalogu, ale kończy się niepowodzeniem.
Kod prosty fragment jest tutaj:
console.log('Here: ' + filename);
filenames = fs.readdirSync('./caspertemp/');
console.log(filenames);
var fd = fs.openSync('./caspertemp/' + filename, 'r');
console.log(fd);
Istnieje grono więcej dzieje się przed i po tym, ale nic z tego nie ma znaczenia, ponieważ to podstawowa funkcja nie powiedzie się. Proszę pomóż! To było dokuczliwe od tygodni.
Hmm. Czy sprawdziłeś uprawnienia? Uruchom także plik node.js tak: strace ./node - to prześle wszystkie wywołania systemowe i szukasz otwartego(), sprawdź, czy węzeł ścieżki używa, itp. To powie ci, co faktycznie robi proces węzła. – EdH
@EdH Dla uprawnień tak Wszystkie pliki mają te same uprawnienia: '-rw-r - r-- 1 Pracownicy domowi 216102 Feb 3 15:00 bdTcK6hSdownload.csv' Warto również zauważyć, że jeśli zrestartuję węzeł, mogę dostęp do pliku bez problemu – Brandon
@ EdH.Hmm, nie mogę uruchomić w trybie strace z jakiegoś powodu: mac: dev Home $ strace -fF -o strace.lo g węzeł app.js -bash: strace: polecenie nie znalezione - nie jestem pewien, co robię źle z tym poleceniem – Brandon