2016-01-06 82 views
0

我复制了本页教程中的源代码,所以我必须在某处出现我的文件路径有问题。下面是我得到使用NODEjs获取fs.rename的错误

错误 - > 错误的错误:ENOENT:没有这样的文件或目录,重命名 'C:\用户\ Amazo \应用程序数据\本地的\ Temp \ 3OOis2VHktYYKr2gQCX97Y2X.jpg' - >“C:\用户\ Amazo \的NodeJS \ SocialMediaProject1 \上传\ 568ab3707d355a981c73d41dWed 2016年1月6日8时26分35秒GMT-0600(中部标准时间)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}) 
        } 
       }) 
      }) 
     } 
    }) 
}; 
+0

你检查了给定的路径和文件名,并且文件确实存在,即使节点说它不存在,现在你想知道为什么Node没有找到明确存在的文件,只是在哪里它说它不应该。 – adeneo

+0

是的,当我进入C:\ Users \ Amazo \ AppData \ Local \ Temp \ 3OOis2VHktYYKr2gQCX97Y2X.jpg,那里是100%。出于某种原因解决了这个问题的是我在新的Date()部分放置了.toISOString。所以var uploadDate = new Date()。toISOString和它的工作原理为什么我不得不补充,但他不?说实话,我不知道那是什么。 – NewbieCoder

回答

0

从热切和研究我发现这个错误并不能真正告诉你哪条路径实际上是错误的。所以在这种情况下,我认为这是第一条错误的道路,因为第一条路是100%真实存在的。

我所做的就是在:

var uploadDate = new Date(); 

我说:

uploadDate = uploadDate.toString; 

这使得它为我工作。不确定为什么要百分百诚实,但它必须与重命名函数如何与fs节点模块一起工作。无论哪种方式,如果其他人有反馈,让我知道你找到了什么。