node.js fs.rename() 错误提示

标签 node.js express rename fs

将文件上传到我的服务器后,我尝试将其移动到另一个文件夹(同一磁盘),但出现错误

{[Error:ENOENT,rename 'F\myproject\1b231234nsdifhoi2323']
  errno:34,
  code:ENOENT,
  path:'F\\myproject\\1b231234nsdifhoi2323'
}

在 Windows 上使用

app.use(express.bodyParser({
    uploadDir:'./Temp'
}));

这是我的重命名代码

exports.upload = function(req, res,next){
    console.log( req.body);
    console.log(req.files);
    var tmp_path = req.files.product_video.path;
    var target_path = '\\Video\\' + req.files.product_video.name;

    console.log(tmp_path);       // Temp\1b231234nsdifhoi2323
    console.log(target_path);    // \Video\name

    fs.rename(tmp_path, target_path, function(err) {
        if (err) {
            console.log(err)
        };
        fs.unlink(tmp_path, function() {
            if (err){
                console.log(err)
            }else{
                res.send('File uploaded to: ' + target_path + ' - ' + req.files.product_video.size + ' bytes');

            }
        });
    });
};

看来我走错了路,但我想不通!

最佳答案

您正在访问一个不存在的文件 - 因为路径不存在。

尝试编辑路径:
"F\myproject\1b2" 更改为 "F:/myproject/1b2""F:\myproject\1b2"

如果不起作用,请使用:(__dirname 将创建一个相对于脚本的路径)
__dirname + "/../../myproject\1b2"

用于调试:
尝试读取这个文件(如果你得到同样的错误 - 这意味着路径错误并且重命名没问题)

关于node.js fs.rename() 错误提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132048/

相关文章:

javascript - 如何查找表单参数的存储位置并在请求中使用它们

javascript - 使用多个 '/' 刷新路由会导致 Angular 出错

javascript - Node.js 中的工厂模式(express)

javascript - 使用 CTR 模式对 crypto-js 进行加密并在 Node crypto 上进行解密问题

node.js - 在 Mongoose (mongodb node.js) 中,如何更新现有值并插入缺失值,而不删除未指定的值?

node.js - 使用express-session时req.session未定义

node.js - 我的服务器在 nginx 代理上运行 Node JS 时出现 502 Bad Gateway 错误

重命名表时,带有 --noinput 的 Django 南迁移不会删除内容类型

windows - 在 Windows 批处理脚本中的特殊字符的倍数之后截断文件名?

java - 如何重命名现有文件