0

所以我在玩rabbitMQ并为消费者使用节点,我试图从远程服务器上拉下一个图像文件,只要我使用'./'作为目的地,这工作正常,但是一旦我使用了一些东西就像 'c:\images' 一样,它会用以下方式轰炸:

{ [Error: EISDIR, open 'C:\images'] errno: 28, code: 'EISDIR', path: 'C:\\images' }

我也使用 '\images' 得到相同的结果

user.moveImage.js:

var amqp = require('amqp'),
  cxn = require('./cxn.js'),
  env = require('./env.js'),
  argv = require('optimist').argv,
  fs = require('fs'),
  client = require('scp2');

var path = env.local.path;
if(argv.env != undefined) {
  path = env[argv.env].path
} else {
  console.log('Undefined or invalid environment, using local');
}

var connection = amqp.createConnection({ url: cxn.connectionUrl() });

// Wait for connection to become established.
connection.on('ready', function () {
// Use the default 'amq.topic' exchange
connection.queue('user.image.move', {
  durable: true,
  autoDelete: false
},function(q){
    // Catch all messages
    q.bind('#');

    // Receive messages
    q.subscribe(function (message) {
      console.log(message);
      //scp the file from the remote to the local imagePath
      fs.readdir(env.local.imagePath,function(err, files){
        console.log(files);
      });
      client.scp({
          host: message.host,
          username: '#######',
          password: '#################',
          path: message.webroot + message.image_url
      }, env.local.imagePath, function(err) {console.log(err)})

    });
  });
});
connection.on('error',function(e){
  console.log(e);
})

环境.js:

var local = 
    path: 'C:\\Users\\ian\\Documents\\sites\\townspot\\app\\webroot',
    mediaPath: 'C:\\media',
    imagePath: 'c:\\images'
}

exports.local = local;
4

1 回答 1

9

找到了答案。我是个假脑袋。忘记了斜杠,它试图将文件写入目录而不是将文件放在目录中

于 2013-09-15T18:36:28.140 回答