Latest web development tutorials

Node.js GET permintaan / POST

Dalam banyak adegan, server kami diminta untuk menangani browser pengguna, seperti pengiriman formulir.

Formulir diserahkan ke server umumnya menggunakan permintaan GET / POST.

bab ini kita akan memperkenalkan Node.js GET / POST permintaan semua orang.


GET permintaan untuk mendapatkan konten

Karena permintaan GET yang tertanam langsung di jalan, URL adalah path lengkap dari permintaan, termasuk? Kembali bagian, sehingga Anda dapat secara manual mengurai isi kembali sebagai permintaan parameter GET.

node.js mengurai fungsi modul url menyediakan fungsi ini.

var http = require('http');
var url = require('url');
var util = require('util');

http.createServer(function(req, res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end(util.inspect(url.parse(req.url, true)));
}).listen(3000);

Akses di browser http://localhost:3000/user?name=w3c&[email protected] name=w3c&[email protected]? Kemudian melihat hasil yang dikembalikan:

w3cnodejs

Dapatkan POST konten permintaan

POST meminta semua isi di dalam tubuh permintaan, http.ServerRequest properti tidak memiliki kandungan tubuh untuk permintaan, karena transmisi menunggu permintaan tubuh bisa menjadi pekerjaan yang memakan waktu.

Seperti upload file, dan banyak kali kita mungkin tidak perlu mengabaikan permintaan isi tubuh, permintaan POST berbahaya akan sangat mengkonsumsi sumber daya server, semua node.js default tidak akan menyelesaikan permintaan tubuh, ketika Anda membutuhkannya, Anda perlu secara manual dilakukan.

var http = require('http');
var querystring = require('querystring');
var util = require('util');

http.createServer(function(req, res){
    var post = '';     //定义了一个post变量,用于暂存请求体的信息

    req.on('data', function(chunk){    //通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
        post += chunk;
    });

    req.on('end', function(){    //在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
        post = querystring.parse(post);
        res.end(util.inspect(post));
    });
}).listen(3000);