javascript – NodeJS fs.open在现有文件上失败(不是路径问题)

前端之家收集整理的这篇文章主要介绍了javascript – NodeJS fs.open在现有文件上失败(不是路径问题)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在处理这个很长时间,所以任何帮助是非常感谢.所以,我正在下载文件并使用PhantomJS和CasperJS保存.让我指出,这不是问题.该文件下载没有问题.

问题是NodeJS下载后不会识别或打开文件.我不能fs.stat,fs.open等.没有什么工作.

我会在一秒钟内分享代码,但下面是日志:

Here: bdTcK6hSdownload.csv

[ '2puzZMeLdownload.csv','2s5ICbKNdownload.csv','bdTcK6hSdownload.csv','izIfagwCdownload.csv' ]

fs.js:230

return binding.open(pathModule._makeLong(path),stringToFlags(flags),mode);

Error: ENOENT,no such file or directory './caspertemp/bdTcK6hSdownload.csv'

at Object.openSync (fs.js:230:18)
at Object.processCSV (/Users/Home/dev/node_modules/inviter/index.js:64:29)
at /Users/Home/dev/node_modules/inviter/index.js:36:33
at ChildProcess.exithandler (child_process.js:281:7)
at ChildProcess.emit (events.js:70:17)
at maybeExit (child_process.js:361:16)
at Process.onexit (child_process.js:397:5)

如您所见,我打印出创建的文件名,然后打印目录的内容,然后尝试打开该文件.您可以看到,目录中存在bdTcK6hSdownload.csv,但在打开时失败.

简单的代码片段在这里:

console.log('Here: ' + filename);

filenames = fs.readdirSync('./caspertemp/');
console.log(filenames);

var fd = fs.openSync('./caspertemp/' + filename,'r');
console.log(fd);

在这之前和之后还有更多的事情,但没有一个重要,因为这个基本功能失败.请帮忙!这已经叨叨了几个星期.

解决方法

我的猜测是,目前的工作目录是一个差异.您是否从同一目录启动casperJS和node.js进程?他们中的任何一个在运行时改变工作目录?尝试这样的东西,其中节点的__dirname将为您提供当前正在执行的.js文件的目录路径
var path = require("path");
var filename = "bdTcK6hSdownload.csv";
var csvPath = path.resolve(path.join(__dirname,"caspertemp",filename));
console.log(csvPath);

猜你在找的JavaScript相关文章