当前位置:网站首页 > Node.js开发 > 正文

安装node.js报错invalid drive(win7安装node.js 报错)



磁盘system疯狂写入_磁盘system疯狂写入

Node.js 小知识 记录一些工作中或 “Nodejs技术栈” 交流群中大家遇到的一些问题,有时一个小小的问题背后也能延伸出很多新的知识点,解决问题和总结的过程本身也是一个成长的过程,在这里与大家共同分享成长。

该问题之前由交流群一位同学提出,当时是遇到一个报错 正巧之前工作中也曾遇到,于是做下记录希望可以帮助到有需要的小伙伴。

开启一个 Node.js 服务,指定路由 收到请求后调用 方法,传入 Request 对象。

formidable 是一个用来处理上传文件、图片等数据的 NPM 模块,form.parse 是一个 callback 转化为 Promise 便于处理。

Tips:拼接路径时使用 path 模块的 join 方法,它会将我们传入的多个路径参数拼接起来,因为 Linux、Windows 等不同的系统使用的符号是不同的,该方法会根据系统自行转换处理。

fs.rename 重命名文件

将上传的图片写入本地目标路径一种简单的方法是使用 fs 模块的 rename(sourcePath, destPath) 方法,该方法会异步的对 sourcePath 文件做重命名操作,使用如下所示:

cross-device link not permitted

在使用 fs.rename() 时还要注意 错误,参考 rename(2) — Linux manual page:

EXDEV oldpath and newpath are not on the same mounted filesystem. (Linux permits a filesystem to be mounted at multiple points, but rename() does not work across different mount points, even if the same filesystem is mounted on both.)

oldPath 和 newPath 不在同一挂载的文件系统上。(Linux 允许一个文件系统挂载到多个点,但是 rename() 无法跨不同的挂载点进行工作,即使相同的文件系统被挂载在两个挂载点上。)

在 Windows 系统同样会遇到此问题,参考 http://errorco.de/win32/winerror-h/error_not_same_device/0x/

winerror.h 0x #define ERROR_NOT_SAME_DEVICE The system cannot move the file to a different disk drive.(系统无法移动文件到不同的磁盘驱动器。)

之前在 “Nodejs技术栈交流群” 上一个小伙伴提问过该问题,此处在 Windows 做下复现,因为在使用 formidable 上传文件时默认的目录是操作系统的默认目录 os.tmpdir(),在我的电脑上对应的是 C 盘下,当我使用 fs.rename() 将其重名为 F 盘时,就出现了以下报错:

设置源路径与目标路径在同一磁盘分区

设置上传文件中间件的临时路径为最终写入文件的磁盘分区,例如我们在 Windows 测试时将图片保存在 F 盘下,所以设置 formidable 的 form 对象的 uploadDir 属性为 F 盘,如下所示:

这种方式有一定局限性,如果写入的位置位于不同的磁盘空间该怎么办呢?

可以看下下面的这种方式。

读取-写入-删除临时文件

一种可行的办法是读取临时文件写入到新的位置,最后在删除临时文件。所以下述代码创建了可读流与可写流对象,使用 pipe 以管道的方式将数据写入新的位置,最后调用 fs 模块的 unlink 方法删除临时文件。

方式一:终端调用

方式二:POSTMAN 调用

磁盘system疯狂写入_upload_02

磁盘system疯狂写入_upload_03

到此这篇安装node.js报错invalid drive(win7安装node.js 报错)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • node环境变量是干嘛用的(nodejs环境变量配置win7)2025-03-06 18:45:04
  • 安装nodemodules命令报错安装vue-loader(node安装vuecli)2025-03-06 18:45:04
  • nvm下载node版本(nvm安装nodejs)2025-03-06 18:45:04
  • 降低node版本(降低node版本命令)2025-03-06 18:45:04
  • 安装node的命令(安装node后怎么用)2025-03-06 18:45:04
  • 升级node版本会影响项目吗安全吗(升级node版本会影响项目吗安全吗知乎)2025-03-06 18:45:04
  • nvm安装node失败(安装node报错)2025-03-06 18:45:04
  • nodejs安装nrm报错(node安装完node –v报错)2025-03-06 18:45:04
  • node包管理工具(node包管理工具有哪些)2025-03-06 18:45:04
  • node版本切换(node版本切换导致cnpm 下载不了)2025-03-06 18:45:04
  • 全屏图片