【问题标题】:Error in fs.readFileSync() in nodejsnodejs 中的 fs.readFileSync() 出错
【发布时间】:2016-01-16 22:13:49
【问题描述】:

我在 nodejs

中使用 require('fs'); 调用同步调用
var folder_path = '/home/abc';
var myfiles = ['a.png','b.png'];
_.each(myfiles, function(name){
    var data = fs.readFileSync(folder_path+'/'+name);
    if(data){
       // Some operation
    }
});

在调用该函数时,我收到错误:EISDIR,对目录的非法操作

fs.js:488
  var r = binding.read(fd, buffer, offset, length, position);
              ^
Error: EISDIR, illegal operation on a directory
at Object.fs.readSync (fs.js:488:19)
at Object.fs.readFileSync (fs.js:322:28)
at /home/coader/dev/api/controllers/MyController.js:66:30
at Function.forEach ( /home/coader/dev/node_modules/sails/node_modules/lodash/dist/lodash.js:3298:15)
at /home/coader/dev/api/controllers/MyController.js:41:11
at Object.oncomplete (fs.js:108:15)
error: Forever detected script exited with code: 8

详情

$ node -v
v0.10.37

$ nodejs -v
v0.10.37

$ npm -v
1.4.28

任何答案都将是可观的。

谢谢

【问题讨论】:

  • 你为什么在_而不是myfiles上调用each
  • 没有具体原因...我使用了underscore.js,所以我调用了_.each()。

标签: node.js filesystems fs


【解决方案1】:

我认为你可能不得不接受“myfiles.forEach(function(name)”

var folder_path = '/home/abc';
var myfiles = ['a.png','b.png'];
myfiles.forEach(function(name){
    var data = fs.readFileSync(folder_path+'/'+name);
    if(data){
             // Some operation
            }
}); 

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 2019-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 2016-09-07
相关资源
最近更新 更多