5

我使用节点 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

4 回答 4

6

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

$ node --version
v0.8.3

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

相关文档:

于 2012-10-30T12:00:09.727 回答
2

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

于 2012-10-30T10:53:23.477 回答
1

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

于 2012-10-30T11:08:57.193 回答
0

我在 Raspberry Pi 中也遇到了同样的问题。因为如果我们只是跑

  sudo apt-get install nodejs npm 

这不会安装最新版本的 NodeJs。为了安装最新版本的 NodeJs 运行这个命令

  # 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

于 2015-06-06T07:13:34.620 回答