我正在使用节点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)
“存在”已被弃用吗?那我可以用什么呢?
答案 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
进行操作