Powodem, dla którego pytam, jest to, że Node.js na ubuntu nie ma funkcji fs.exists(). Chociaż mogę to nazwać, gdy uruchamiam Node.js na moim Macu, kiedy wdrażam serwer, nie powiedzie się z błędem mówiąc, że funkcja nie istnieje.Jak sprawdzić, czy plik lub katalog istnieje bez użycia fs.ist?
Teraz zdaję sobie sprawę, że niektórzy ludzie uważają to za "anty-wzór", aby sprawdzić, czy plik istnieje, a następnie spróbuj go edytować/otworzyć itp., Ale w moim przypadku nigdy nie usuwam tych plików, ale wciąż musisz sprawdzić, czy istnieją przed napisaniem do nich.
Jak mogę sprawdzić, czy katalog (lub plik) istnieje?
EDIT:
Jest to kod biegnę w pliku o nazwie 'temp jest.':
var fs=require('fs');
fs.exists('./temp.js',function(exists){
if(exists){
console.log('yes');
}else{
console.log("no");
}
});
Na moim Mac, to działa dobrze. Na ubuntu pojawia się błąd:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^TypeError: Object #<Object> has no method 'exists'
at Object.<anonymous> (/home/banana/temp.js:2:4)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:32)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:41)
na moim Mac - wersja: v0.13.0-pre na Ubuntu - wersja: v0.6.12
Twoje pytanie jest źle, powinien iść "Dlaczego fs.exists() brakuje?". Czy możesz dodać, jakie wersje NodeJs masz na swoim komputerze i Macu? Jaki błąd dostałeś? Coś takiego jak "istnieje nie jest funkcją"? Czy nie ma innych typowych metod FS w tym obiekcie 'fs'? Jak potrzebujesz 'fs'? –
Używam Ubuntu i twój kod działa dobrze dla mnie. Jest to więc problem na twoim komputerze. Jak zainstalowałeś węzeł? Jaką wersję Node i Ubuntu używasz? –
Jest to prawdopodobnie spowodowane faktem, że w NodeJs 0.6 metoda 'exists()' znajdowała się w module 'path': http://web.archive.org/web/20111230180637/http://nodejs.org/api /path.html –