2013-11-14 63 views
0
工作

我使用這個模塊,我對Openshift應用程序,但在需要執行來檢查,如果一個文件中的數據文件夾中存在的功能appers錯誤:FS的NodeJS模塊不Openshift

DEBUG: /var/lib/openshift/02A50df2XXYD46273d00FFG8/app-root/runtime/repo/server.js:164 
     fs.exists('$OPENSHIFT_HOMEDIR/app-root/data/' + user_ip, function(exis 
     ^

DEBUG: TypeError: Object #<Object> has no method 'exists' 

我有需要在服務器代碼fs,並且在的package.json的依賴關係

編輯:解決

使用require('path')path.exists()它工作得很好。

回答

1

fs.exists()已被棄用。而是使用path.exists()。 有關路徑的更多信息,請參閱節點核心path模塊。

+0

我試過使用path.exists,但是當函數執行時它返回下一個錯誤:path.exists('$ OPENSHIFT_HOMEDIR/app-root/data /'+ user_ip,function(exists) DEBUG:ReferenceError:path is not定義 – abaracedo

0

建議:
根據API文檔http://nodejs.org/api/fs.html#fs_fs_exists_path_callback

fs.exists()已過時,只存在由於歷史原因。幾乎從來沒有理由在你自己的代碼中使用它。

特別是,在打開文件之前檢查文件是否存在是一種反模式,使您容易受到競爭條件的影響:另一個進程可能會在調用fs.exists()和fs.open()之間刪除該文件。只要打開文件並在不存在時處理錯誤。

至於你的問題: 你能夠做其他FS調用?

+0

我試過使用fs.open,我可以使用它。 – abaracedo

+0

那麼如果我是你,我會堅持使用fs.open,因爲它似乎是一個更好的選擇。 – niharvey