node fs.mkdir在ubuntu服务器中给出errno -2

时间:2016-08-26 06:00:53

标签: node.js ubuntu express

我在本地环境中运行以下代码:

if (!fs.existsSync(dirName)){
            fs.mkdir(dirName, function(err){
                if(err){ 
                 console.log(err);
                 callback(err);    // echo the result back
               }else{
                   callback(null, result);
               }
            });
        }else{
            callback(null, result);
        }

但是当我运行相同的代码时,我收到以下错误:

{"err":{"errno":-2,"code":"ENOENT","syscall":"mkdir","path":"public/img/profile/7f603130-6aee-11e6-9199-9308857da48d"
}}

这可能是我在linux服务器上创建目录的权限问题,但我不知道如何解决它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

fs.mkdir()只会创建一个目录。

在您的情况下,它将尝试在(假定为已存在的)目录7f603130-6aee-11e6-9199-9308857da48d(相对于current working directory)中创建名为public/img/profile/的目录。

如果上一个完整路径尚不存在,则会出现ENOENT错误。

您可以使用mkdirp之类的模块来创建所有中间目录。