zoukankan      html  css  js  c++  java
  • 《node入门》学习

    node入门原书地址:https://www.nodebeginner.org/index-zh-cn.html

    node入门,循序渐进讲了javascript,node的回调和一些api的应用,很清晰,翻译也很给力。最终是一个例子,可以上传图片以及展示。

    最后例子,遇到了麻烦,运行报错

    可见零时文件已经创建

    代码如下

     1 function upload(response, request){
     2     console.log("Request handler 'upload' was called.");
     3     
     4     var form = new formidable.IncomingForm();
     7     form.parse(request,function(error, fields, files){
     8         console.log("parsing done");
     9         console.log("F.U.P: "+files.upload.path);
    10         fs.renameSync(files.upload.path, "tmp/test.png");
    11         response.writeHead(200, {"Content-Type": "text/html"});
    12         response.write("received image:<br/>");
    13         response.write("<img src='/show' />");
    14         response.end();
    15     });
    16     
    17 };

    搜过以后发现是fs.renameSync()不能跨盘操作,且不会新建文件夹,所以重新指定路径“form.uploadDir = "tmp"”,然后在目录新建tmp文件夹,最后在show函数读取的路径做修改

    修改后代码

     1 function upload(response, request){
     2     console.log("Request handler 'upload' was called.");
     3     
     4     var form = new formidable.IncomingForm();
     5     form.uploadDir = "tmp";
     6     //console.log("about to parse");
     7     form.parse(request,function(error, fields, files){
     8         console.log("parsing done");
     9         console.log("F.U.P: "+files.upload.path);
    10         /**
    11         try{
    12             fs.renameSync(files.upload.path, "tmp/test.png");
    13         }catch(e){
    14             console.log(e);
    15         };
    16         
    17         fs.renameSync(files.upload.path, "tmp/test.png",function(error){
    18             if(error){
    19                 fs.unlink("/tmp/test.png");
    20                 fs.rename(files.upload.path,"/tmp/test.png");
    21             };
    22         });
    23         **/
    24         fs.renameSync(files.upload.path, "tmp/test.png");
    25         response.writeHead(200, {"Content-Type": "text/html"});
    26         response.write("received image:<br/>");
    27         response.write("<img src='/show' />");
    28         response.end();
    29     });
    30     
    31 };
    32 
    33 function show(response){
    34     console.log("Request handle 'show' was called.");
    35     fs.readFile("./tmp/test.png","binary",function(error,file){
    36         if(error){
    37             response.writeHead(500,{"Content-Type":"text/plain"});
    38             response.write(error + "
    ");
    39             response.end();
    40         }else{
    41             response.writeHead(200,{"Content-Type":"image/png"});
    42             response.write(file,"binary");
    43             response.end();
    44         };
    45     });
    46 };

    第五行及第35行有修改

  • 相关阅读:
    三范式
    解决Linux下乱码
    ER概念模型
    20140607
    PHP Fatal error: Class 'Yaf_Application' not found
    PHP流式读取XML文件
    php反射的使用
    wget 和curl 进行post数据
    crontab
    Leetcode OJ: Gray Code
  • 原文地址:https://www.cnblogs.com/hjjz/p/7364263.html
Copyright © 2011-2022 走看看