3种不同类型的post

2016-08-27  本文已影响35人  俊瑶先森

Post with x-www-form-urlencoded

see post.html

<script> 
$(function(){ 
  $.ajaxSetup({ 
    contentType: "application/x-www-form-urlencoded;charset=utf-8" 
  }); 
  $.post("/users/post", { name: "i5a6", time: "2pm" },
    function(data){ 
      console.log(data); 
    }, "json");
  }); 
</script>

in routes/users.js

router.post('/post', function(req, res) { 
// res.send('respond with a resource'); 
res.json(req.body);
});
Paste_Image.png

Post with form-data

主要目的是为了上传

npm install --save multer

Usage

var express = require('express')
var multer = require('multer')
var app = express()
app.use(multer({ dest: './uploads/'}))

You can access the fields and files in the request object:

console.log(req.body)
console.log(req.files)

重要提示:
Multer will not process any form which is not multipart/form-data
see more

Paste_Image.png

Post with raw

To get the raw body content of a request with Content-Type: "text/plain" into req.rawBody you can do:

https://gist.github.com/tj/3750227

req.rawBody已经被干掉了,现在只能用req.text

下面是tj给出的代码片段

var express = require('./')
var app = express();
app.use(function(req, res, next){
if (req.is('text/*')) { 
  req.text = ''; 
  req.setEncoding('utf8'); 
  req.on('data', function(chunk){ req.text += chunk }); 
  req.on('end', next);
 }else { 
  next(); 
  }
});
app.post('/', function(req, res){ 
res.send('got "' + req.text + '"');
});
app.listen(3000)
Paste_Image.png

http://i5ting.github.io/node-http/#10801

上一篇下一篇

猜你喜欢

热点阅读