1. 程式人生 > >node.js初識10

node.js初識10

erro oct type all lld mage 分享圖片 input min

post請求

form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="http://127.0.0.1:3000/dopost" method="post" enctype="multipart/form-data">
        <p>
            姓名:
<input type="text" name="name"> </p> <p> 性別: <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"></p> <p> 愛好 <input type="checkbox"
name="hobby" value="睡覺">睡覺 <input type="checkbox" name="hobby" value="看電影">看電影 <input type="checkbox" name="hobby" value="吃飯">吃飯 </p> <p> 上傳 <input type="file" name="tupian"> </p> <
p> <input type="submit"> </p> </form> </body> </html>
enctype="multipart/form-data"是使用formidable第三方庫需要添加的

post.js

var http = require("http");
var querystring = require("querystring");
var server = http.createServer(function(req,res){
    if(req.url == "/dopost" && req.method.toLowerCase()=="post"){
        var alldata = ‘‘;
        //下面是post接收數據的一個公式
        //node為了極致,他是一小段一小段接收的
        //接受了一小段,可能就給別人去服務了。防止一個過大的表單阻塞了整個進程
        req.addListener("data",function(chunk){
            alldata +=chunk;
            console.log(chunk);
        });
        //全部傳輸完畢
        req.addListener("end",function(chunk){
            console.log(alldata.toString());
            var datastring = alldata.toString();
            var dataObj =querystring.parse(datastring);
            console.log(dataObj);
            console.log(dataObj.name);
            console.log(dataObj.sex);
            res.end("success");
        });
    }
});
server.listen(3000,"127.0.0.1");

node post.js

技術分享圖片

這裏上傳圖片是真的上傳了,默認是放在一個c盤的一個地方,我們可以修改上傳圖片的路徑並且改名的

post1.js

var formidable = require(‘formidable‘);
var http = require("http");
var fs = require("fs");
var sd = require("silly-datetime");
var querystring = require("querystring");
var path = require("path");

var server = http.createServer(function(req,res){
    if (req.url == ‘/dopost‘ && req.method.toLowerCase() == ‘post‘) {
    // parse a file upload
    var form = new formidable.IncomingForm();
    form.uploadDir = "./upload";
    form.parse(req, function(err, fields, files) {
      // 所有的文本域,單選框都在fields;
      // 所有的文件域,都在files;
      var ttt = sd.format(new Date(),‘YYYYMMDDHHmmss‘);
      var ran = parseInt(Math.random()*89999+1000);
      var extname = path.extname(files.tupian.name);
      var oldpath =__dirname+"/"+files.tupian.path;
      var newpath = __dirname + "/upload/"+ ttt + ran + extname;
      fs.rename(oldpath,newpath,function(err){
          if(err){
              throw Error("改名失敗")
          };
            console.log(fields);
          console.log(files);
          res.writeHead(200, {‘content-type‘: ‘text/plain‘});
          res.end("success");
      });
    });
  }
});
server.listen(3000,"127.0.0.1");

node post1.js

技術分享圖片

然後你可以在你同級目錄的upload文件夾裏查看到你上傳的圖片

技術分享圖片

node.js初識10