2015年8月23日

nodejs报错enoent解决方案


nodejs也是web前端开发的一部分,因为nodejs的本质是js,而我们作为前端切图开发工程师,常写的代码无非是html,css,js,这个意义上来讲nodejs属于web前端,而且它可以帮助前端实现很多有趣的事情。

当我首次安装nodejs的时候,打开会报Error: ENOENT, 这种大都是路径不对,假设提示的那个目录不存在,最简单有效的方法,是按照那个不存在的文件夹路径,是新建文件夹,保证这个路径有效,问题完美解决。

当然,我不建议用这种懒人方式,这个可以用来应急,最好的方法还是去找到根本的错误去解决它。

分割线以下来自互联网

————————————–

书中的实例代码当上传图片时会报Error: ENOENT, 原因:图片默认会选择系统的缓存文件夹下,在windows下无权访问C盘,所以就报错了。。

解决方法:只需要指定图片存放位置,在这之前要在指定的文件下手工创建tmp文件夹

具体改动如下(红色标注为改动内容):

 

upload.js

var form = new formidable.IncomingForm();
    form.uploadDir = "tmp";
    form.parse(req, function(err, fields, files) {

      console.log(files.upload.path);
    try{
        fs.renameSync(files.upload.path, "tmp/test.png");
    }catch(e){
        console.log(e);
    }

      res.writeHead(200, {'content-type': 'text/plain'});
      res.write('received upload:\n\n');
      res.end(sys.inspect({fields: fields, files: files}));
    });

当然,文件开头不要忘记引入fs模块 fs = require(‘fs’)

requesthandle.js

function show(response, postData) {
  console.log("Request handler 'show' was called.");
  fs.readFile("tmp/test.png", "binary", function(error, file) {
    if(error) {
      response.writeHead(500, {"Content-Type": "text/plain"});
      response.write(error + "\n");
      response.end();
    } else {
      response.writeHead(200, {"Content-Type": "image/png"});
      response.write(file, "binary");
      response.end();
    }
  });
}

本人也刚刚开始研究nodejs,昨晚看了下这本书。

标签:,

微信扫一扫二维码访问