使用NODEjs获取fs.rename错误

时间:2016-01-06 14:31:04

标签: node.js mean-stack fs

我从这个页面的教程中复制了源代码,所以我的文件路径出错了。这是我得到的错误

错误 - > 错误:ENOENT:没有这样的文件或目录,重命名' C:\ Users \ Amazo \ AppData \ Local \ Temp \ 3OOis2VHktYYKr2gQCX97Y2X.jpg' - > ' c:\ Users \ Amazo \ Nodejs \ SocialMediaProject1 \ uploads \ 568ab3707d355a981c73d41dWed Jan 06 2016 08:26:35 GMT-0600(Central Standard Time)207330aba4a36cea73e8ed6fda9cb012.jpg'

这是我的代码:

var User = require('../datasets/users');
var fs = require('fs-extra');
var path = require('path');

module.exports.updatePhoto = function (req, res){
    var file = req.files.file;
    var userId = req.body.userId;

    console.log("User " + userId + " is submitting " , file);
    var uploadDate = new Date();


    var tempPath = file.path;
    var targetPath = path.join(__dirname, "../../uploads/" + userId + uploadDate + file.name);
    var savePath = "/uploads/" + userId + uploadDate + file.name;

    fs.rename(tempPath, targetPath, function (err){
        if (err){
            console.log(err)
        } else {
            User.findById(userId, function(err, userData){
                var user = userData;
                user.image = savePath;
                user.save(function(err){
                    if (err){
                        console.log("failed save")
                        res.json({status: 500})
                    } else {
                        console.log("save successful");
                        res.json({status: 200})
                    }
                })
            })
        }
    })
};

1 个答案:

答案 0 :(得分:0)

从很多观察和研究中我发现这个错误并没有真正告诉你哪条路径实际上是错误的。因此,在这种情况下,我认为它是第二条错误的路径,因为第一条路径是100%真实存在。

我所做的是:

uploadDate = uploadDate.toString;

我补充说:

{{1}}

这使它对我有用。不确定为什么要100%诚实,但它必须与重命名功能如何与fs节点模块一起工作。无论哪种方式,如果有其他人有反馈,让我知道你发现了什么。