2015-05-01 64 views
0

我试图移动一个特定的文件放到一个文件夹(这是我的情况下,它不存在创建),但由于某种原因,我得到的错误的时候,的NodeJS,更改文件位置

events.js:72 // <- this isn't even an existing file in my project :o 
     throw er; // Unhandled 'error' event 
      ^
Error: ENOENT, open '/Users/user/project/public/uploads/553283d3216c3895055612dd/06704d37f87197d5218522ecc102d932.jpg' 

这是我的代码

var sourceFile, destFile, destFolder; 

sourceFile = fs.createReadStream(file.thumbnail.path); 
destFolder = __dirname + '/public/uploads/' + context.user._id; 
destFile = fs.createReadStream(destFolder + '/' + file.thumbnail.name); 

if (!fs.existsSync(destFolder)) { 
    fs.mkdirSync(destFolder); 
} 

sourceFile.pipe(destFile); 

任何人有任何想法可能是错在这里,我可以解决这个问题? PS:/ public/upload /文件夹有777权限。

谢谢!

+0

该错误表明该文件不存在或无法打开 - 您确定它存在吗? –

+0

'dest'文件不存在(当然,它不是因为这是代码的目的地,我试图将现有的文件移动到那里 - 作为对dest的错误引用) – greW

+0

为什么要测试存在*尝试从文件中读取目录后的目录*?您的'fs.existsSync'检查应该在创建流之前进行。但是,这不是你现在遇到的问题:你正在尝试写入一个读取流,并且该文件不存在。 – apsillers

回答

4

您正试图打开一个不存在的文件(dest文件 - 当然它不存在)。你想打开文件进行写作。

destFile = fs.createWriteStream(destFolder + '/' + file.thumbnail.name);