错误:使用Node.js写入文件时EACCES
试图运行编写JSON文件的cron作业时遇到错误。
以下是我的节点文件中的代码:
var request = require('request'); var fs = require('fs'); var url = "file url"; request.get(url, function(err, response, data) { if (err || response.statusCode != 200) { console.log('Error: ' + err); return; } var json = JSON.parse(data); var processed_json = JSON.stringify(transformJSON(json)); fs.writeFile(__dirname + "/my_data.json", processed_json, function(err) { if (err) { console.log(err); } }); });
cron工作给出的错误是:
{ [Error: EACCES, open '.../my_data.json'] errno: 3, code: 'EACCES', path: '.../my_data.json' }
我的crontab中的行是:
* * * * * node web_scripts/converter.js
任何帮助将不胜感激!
我在我的Mac(小牛)上testing了这个,它对我很有用。 运行crontab,并在脚本所在的文件夹中获取my_data.json。
很可能,cron作业没有写入脚本所在的web_scripts
权限。 您通常可以检查/ var / log / mail / $ YOURUSER以查看任何cron结果。
以下是我通常如何设置cron作业:
touch ~/.crontab vi ~/.crontab # add your cronjob crontab ~/.crontab
现在您可以查看日志并确保它运行,然后检查邮件的结果。 再次,这听起来像一个权限问题。 您也可以尝试暂时写入每个人都拥有完整的__dirname
的path,如/tmp
,而不是使用__dirname
parsingpath。