我一直在处理这个很长时间,所以任何帮助是非常感谢.所以,我正在下载文件并使用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);