NodeJS fs模块在Openshift中不起作用

时间:2013-11-14 16:21:40

标签: node.js openshift fs

我在Openshift上使用此模块作为我的应用程序但是当它需要执行检查Data文件夹中是否存在文件的函数时会出现错误:

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()效果很好。

2 个答案:

答案 0 :(得分:1)

fs.exists()已被弃用。而是使用path.exists()。 有关路径的更多信息,请参阅节点核心path模块。

答案 1 :(得分:0)

建议:
根据API文档http://nodejs.org/api/fs.html#fs_fs_exists_path_callback

fs.exists()是一种时代错误,只是出于历史原因而存在。几乎没有理由在你自己的代码中使用它。

特别是,在打开文件之前检查文件是否存在是一种反模式,使您容易受到竞争条件的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除该文件。只需打开文件并在错误处理时处理错误。

至于你的问题: 你有能力拨打其他电话吗?