Node.js 节点js模块mkdirp只创建了一半的目录
我试图将其用于一个项目,但当我向它提供一个带有我想要创建的dir路径的var时,它只创建它的前半部分。我已经用npm在本地安装了该模块。我在Raspberry Pi上使用节点v0.10.20 这就是它的样子:Node.js 节点js模块mkdirp只创建了一半的目录,node.js,raspberry-pi,Node.js,Raspberry Pi,我试图将其用于一个项目,但当我向它提供一个带有我想要创建的dir路径的var时,它只创建它的前半部分。我已经用npm在本地安装了该模块。我在Raspberry Pi上使用节点v0.10.20 这就是它的样子: var filePath = "upload/home/pi/app/temp"; mkdirp(filePath, function(error) { if(error) { console.log(error); } else { ...
var filePath = "upload/home/pi/app/temp";
mkdirp(filePath, function(error) {
if(error) {
console.log(error);
} else {
...
}
});
我在创建路径时没有遇到错误,但它只会创建“upload/home/pi”,但是如果我再次运行脚本,它会创建目录结构的其余部分。上传是一个
当前工作目录中的目录,即用户主页
我给该模块的作者发了电子邮件,他建议可能是因为我使用闪存驱动器作为介质,而闪存驱动器又取决于IO操作何时完成,我想这会让node.js误以为它已成功写入磁盘路径。我该如何解决我的问题?我想我可以检查一下目录是否被创建,然后循环直到创建为止,但这感觉是错误的。欢迎任何建议
谢谢。尝试同步执行此操作:
var filePath = "upload/home/pi/app/temp";
mkdirp(filePath)
是的,循环是错误的。您是否尝试过手动执行此操作,即使用调用mkdir的回调函数mkdir调用调用mkdir的回调函数[…]调用mkdir?不,我还没有,我会查看一下,谢谢您的建议。但是发明轮子太糟糕了!我仍然想知道它为什么会这样。你试过代码吗?你能分享代码吗?请将此标记为已解决或删除。