node.js - NodeJS,更改文件位置

标签 node.js fs

我正在尝试将特定文件移动到文件夹中(我创建该文件夹以防它不存在),但由于某种原因我总是收到错误,

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。

谢谢!

最佳答案

您正在尝试打开一个不存在的文件进行读取(目标文件——当然它不存在)。您想要打开文件进行写入。

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

关于node.js - NodeJS,更改文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988374/

相关文章:

javascript - 如何基于 Promise 制作异步函数

node.js - 如何保持从一个窗口到另一个窗口的套接字连接处于事件状态?

javascript - 使用凭据在 NodeJS 中写入文件

javascript - 使用 Next.js 中的 getStaticProps 对公共(public)文件夹中的静态图像进行编码

javascript - 使用 Node.js 的 fs.readFile() 返回出现字符串的行

node.js - 如何在 sails.js 中预定义/生成唯一 ID?

angularjs - 为我的 angularJS Web 应用程序提供静态内容、nodeJS 还是 apache?

node.js - 在多个帐户之间切换时,Gdrive API V3 出现 403 错误

node.js - 不适用于 Node js 中的 fs.readFile

node.js - fs.appendFile 但如果路径不*不*存在则失败