fs.exists方法在node.js中不再存在

时间:2012-10-30 10:41:36

标签: node.js

我正在使用节点v0.6.12

这是我的代码:

var fs = require("fs");

fs.exists(".", function() {
    console.log("Whatever);
});

我得到了这个输出:

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/dbugger/Projects/nodetest/test.js:3: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)

“存在”已被弃用吗?那我可以用什么呢?

4 个答案:

答案 0 :(得分:6)

您可以使用path.exists(),但在最新版本的节点中已弃用。这些天首选的api是fs.exists(),所以你需要准备好在某个时候切换。

$ node --version
v0.8.3

$ node
> require('fs').exists
[Function]
> require('path').exists
[Function: deprecated]

相关文档:

答案 1 :(得分:2)

您的节点版本是什么?我在我的机器上得到了相同的结果(v0.6.14)。我认为exists()方法最近已从path模块移到fs模块。试试path.exists()

答案 2 :(得分:1)

好的,升级到最新版本的节点(0.8.12)解决了这个问题。谢谢:))

答案 3 :(得分:0)

我在Raspberry Pi中也有同样的问题。因为如果我们只是运行

  sudo apt-get install nodejs npm 

这不会安装最新版本的NodeJs。要安装最新版本的NodeJ,请运行此命令

  # Note the new setup script name for Node.js v0.10
  curl -sL https://deb.nodesource.com/setup_0.10 | sudo bash -

  # Then install with:
  sudo apt-get install -y nodejs

不要尝试在Raspberry Pi上安装Node.js v0.12。还有一个未解决的问题(https://raspberrypi.stackexchange.com/questions/24059/node-js-v0-11-14-exits-with-illegal-instruction

如果上述方法不起作用,请按照https://learn.adafruit.com/node-embedded-development/installing-node-dot-js

进行操作