fs.unlink 不会删除文件

2023-12-30

在我的 Express 服务器上,我想获取用户上传的文件并将其重命名以匹配他们的用户名。如果用户上传新文件,则之前的文件将被替换。

这是代码:

  var newPath = 'uploads/' + user.username + '.' + (file.extension).toLowerCase();
  var basePath = path.resolve(__dirname + '../../../') + '/';

  // Copy, rename and delete temp file
  var is = fs.createReadStream(basePath + file.path);
  var os = fs.createWriteStream(basePath + newPath);

  is.pipe(os);
  is.on('end', function (error) {
    if (err) return res.send(500);
    fs.unlink(basePath + file.path);
  });

问题是fs.unlink(basePath + file.path);实际上并没有删除我机器上的旧文件(OSX 10.9.2)。如何确保临时文件已被删除?


文件basePath + file.path有读取流的链接引用is。文件内容的删除应推迟到所有对该文件的引用都已关闭为止。您可能想打电话fs.unlink on the close event.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fs.unlink 不会删除文件 的相关文章

随机推荐

  • 无法将“String.Type”类型的值转换为预期的参数类型“String!”

    我正在使用用 Objective C 编写的 MDWamp 库 它具有以下类型的属性 property nonatomic strong void deferredWampCRASigningBlock NSString challange
  • 如何为 Docker 制作自己的基础镜像?

    根据Docker 文档 https docs docker com engine reference builder from 要构建您自己的映像 您必须始终使用FROM操作说明 显然 有很多图像可供选择Docker 索引 https hu
  • 如何在 Atom 中设置 jshint/jsxhint "esnext" 选项

    我正在使用 Atom 的linter react and linter jshint linter jsxhint 在我的 JSX 文件中 我不断收到警告 警告 导入 仅在 ES6 中可用 使用 esnext 选项 W119 这非常简单 我
  • C# 访问 EXCEL,将单元格格式设置为常规

    在 C 中操作 excel 单元格 通过 COM 对象 时 我应该使用 Value 还是 Value2 那是 sheet Cells row n col Value Hello world or sheet Cells row n col
  • 获取轴的纵横比

    有没有一种简单可靠的方法来确定当前纵横比axes当其方面设置为 auto 显而易见的是要检查的是ax get aspect 但这只是返回 auto 我可以将其设置为任意常数值ax set aspect aspect 之后返回相同的常量ax
  • 无法获取相机预览(调用相机),HTC Thunderbolt

    我是 Android 应用程序开发的新手 所以请任何答案都包含代码示例 我的问题是这样的 我必须开发一个相机应用程序 将 mjpeg 流式传输到服务器 现在我已经成功地为我的摩托罗拉 Atrix 创建了该应用程序 并且效果非常好 我的问题是
  • Play 的成功案例!框架? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Windows 7 x64 上的 Flash ocx“类未注册”

    我有一个在 32 位机器上开发的使用 Flash10c ocx 的 WPF 应用程序 我不必在我的开发机器上注册 ocx 我只需安装最新的闪存 添加引用并开始编码 在 64 位系统上测试时 我得到了旧的 类未注册 我认为这意味着我需要 re
  • 从线程更改 ui

    我知道有类似的问题 但我的问题略有不同 我有这样的代码 Thread t new Thread public void run while running if gpstracker canGetLocation double lon gp
  • 在 Android 中组合音频文件的最佳方式

    我正在开发录音应用程序 其中包括暂停 播放 option 我尝试过两者媒体记录器 and 录音带 的情况下录音带 录制的音频消耗更大的大小 因此如果录制大小增加 例如 如果我录制 1 分钟的音频消耗 40 到 50MB通过将其转换为 来进行
  • 如何在 build.gradle 中使用 gradle 属性

    当我运行这个任务时 task tmpTask lt lt project properties each println it I see org gradle java home usr lib jvm java 6 oracle 但如何
  • 连接两个字典[重复]

    这个问题在这里已经有答案了 给定一些字典 Dictionary
  • 在 websphere 8.5 上启动应用程序时出现异常

    我在 WebSphere 8 5 上启动 Web 应用程序时遇到此错误 应用程序通过 DB2 上的 MyBatis 存储过程进行调用 用户使用 REST WS 触发调用 使用 Jersey 框架实现 春天将一切粘合在一起 相同的应用程序在
  • 在JQuery中,设置新的CSS规则后是否可以获取回调函数?

    I have element css color yellow 我需要下一个事件只发生在这个事件之后 看起来像 element css color yellow function alert 1 我需要这个是因为 element css c
  • 做出这个推论需要什么?

    如果我想从这些事实推断 奥巴马出生在美国 Obama bornIn Hawaii Hawaii partOf USA 这两个事实足以做出推论吗 如果是 应该用RDFS还是OWL来表示事实 是否有一些在线 SPARQL 工具可以让我快速测试这
  • 获取包含 main 的 .class 文件的目录路径

    是否可以从 main 中获取包含 main 函数的 class 文件的路径 URL main Main class getResource Main class if file equalsIgnoreCase main getProtoc
  • PyTorch 中张量的最小-最大归一化

    我想在 PyTorch 中对张量执行最小 最大归一化 获得最小 最大归一化的公式是 我想使用一些方法对张量执行最小 最大归一化new min and new max 无需迭代所有元素张量的 gt gt gt import torch gt
  • RecyclerView + MediaPlayer + 切换按钮 + 字符串 Uri

    背景 我正在开发一款健身应用程序 到目前为止一切都运行良好 但是当我处理音频文件时出现了问题MediaPlayer在安卓中 我检查了资源并发现ListView但在 RecyclerView MediaPlayer 上找不到任何内容 我想知道
  • Wicked-PDF 不显示图像,'wicked_pdf_image_tag' 未定义

    我想生成一个包含我们部门徽标的 PDF 当我尝试在控制器中使用 WickedPdf 类时 使用中描述的方法 https github com mileszs wicked pdf https github com mileszs wicke
  • fs.unlink 不会删除文件

    在我的 Express 服务器上 我想获取用户上传的文件并将其重命名以匹配他们的用户名 如果用户上传新文件 则之前的文件将被替换 这是代码 var newPath uploads user username file extension t