基于Express框架使用POST传递Form数据

客户端使用Form发送数据

在客户端Html文件中Form代码如下:


在服务器端处理'/test' POST请求的代码如下: 

var bodyParser = require('body-parser');

// ... 

// create application/json parser
var jsonParser = bodyParser.json()

// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })

// ... 

// 
//  request from form of the html file
// 
app.post('/test', urlencodedParser, function(req, res) {  
    if (!req.body) return res.sendStatus(400);

    console.log('Username: ' + req.body.username);
    console.log('Password: ' + req.body.password);

    res.send('Welcome, ' + req.body.username); 
});

客户端使用Node.js发送数据

在客户端使用Node.js发送Form数据的代码

const http = require('http');

var data = {  
        username: 'foo',  
        password: "test"  
}; 
 
var postData = require('querystring').stringify(data);  
console.log( postData );  

function form()
{
    var options = {  
        method: "POST",  
        host: "localhost",  
        port: 80,  
        path: "/test",  
        headers: {  
            "Content-Type": 'application/x-www-form-urlencoded',  
            "Content-Length": postData.length  
        }  
    };  
  
    var body = ''; 
    var request = http.request( options, function(res) {  
        // show results  
        console.log('STATUS: ' + res.statusCode);    
        res.setEncoding('utf8');  
        res.on('data', function(chunk) {  
            body += chunk;
            console.log('BODY: ' + chunk);  
        });  
  
        res.on('end', function(err) {  
            console.log( ' complete.');  
        });  
    });  
        request.on("error", function(e) {  
            console.log('upload Error: ' + e.message);  
        })  
   
    request.write( postData );
    request.end();  
}

form();

客户端使用jQuery发送数据

客户端使用jQuery的 $.ajax post数据,




    
    Post Data
    
    




Parameters
File Name
 client.js 

$(document).ready(function(){ 

     //try joining the server when the user clicks the connect button
     $("#startButton").click(function () {
      var filename = $("#input[name=filename]").val();
 
	$.ajax({
	type: 'POST',
        url: "/update",
        // dataType: "jsonp",
        data:  { "filename": filename}  ,        
        jsonpCallback: 'callback',  
        success: function (data) {
            // ...
        },
        error: function (xhr, status, error) {
            console.log('Error: ' + error.message);
        },
      });
 
    });
});

server端使用node.js解析数据

//
// Modules 
var express = require('express'); 
var bodyParser = require('body-parser'); 

//
//  Global variables 
var app = express();  

// body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));


/* POST /update listing. */
app.post('/update', function(req, res, next) {
    // Checking require
    if (!req.body) return res.sendStatus(400);	
	
    console.log('filename: ' + req.body.filename);  

    res.redirect('./');
});

参考文献:
 https://github.com/expressjs/body-parser


你可能感兴趣的:(nodejs)