【问题标题】:Node js module mkdirp only creates half the directoriesNode js 模块 mkdirp 只创建一半的目录
【发布时间】:2023-03-23 10:11:02
【问题描述】:

我正在尝试将mkdirp 用于一个项目,但是当我用我想要创建的 dir 路径向它提供一个 var 时,它只会创建它的前半部分。我已经使用 npm 在本地安装了模块。我在 Raspberry Pi 上使用 Node v0.10.20。

看起来是这样的:

var filePath = "upload/home/pi/app/temp";
mkdirp(filePath, function(error) {
    if(error) {
        console.log(error);
    } else {
        ...
    }
}); 

我在创建路径时没有收到错误,但它只创建了“upload/home/pi”,但是如果我再次运行我的脚本,它会创建目录结构的其余部分。上传是一个 当前工作目录中的目录,即用户主目录。

我给模块的作者发了电子邮件,他建议这可能是因为我使用闪存驱动器作为我的媒介,这反过来又与 IO 操作何时完成有关,我猜这会让 node.js 误以为它有成功写入磁盘路径。我应该如何解决我的问题?我想我可以检查目录是否已创建,然后循环直到创建为止,但这感觉是错误的做法。欢迎提出任何建议。

谢谢。

【问题讨论】:

  • 是的,循环是错误的。您是否尝试过手动执行此操作,即带有调用 mkdir 的回调的 mkdir 和调用 mkdir 的回调 [...]?
  • 不,我还没有,我去看看,谢谢你的建议。可惜发明轮子!而且我仍然想知道它为什么会这样。
  • 你试过this代码吗?
  • 可以分享一下代码吗?
  • 请将此标记为已解决或删除。

标签: node.js raspberry-pi


【解决方案1】:

尝试同步执行此操作:

var filePath = "upload/home/pi/app/temp";
mkdirp(filePath)

【讨论】:

    猜你喜欢
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 2020-09-25
    相关资源
    最近更新 更多