nodejsのgetとpostサービス
10319 ワード
webサービスでは、表現とデータを提出する場合、getとpostは非常に一般的な2つのサービスです.今はnodejsでこの二つのサービスを実現します.
一、get操作
app.
app.js
二、ポスト操作
postの実現は比較的に煩わしいので、buffer.co pyという関数に特に注意してもいいです.
app.
一、get操作
app.
<html>
<head>
<title> </title>
</head>
<body>
<form action="check" method="get">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
</body>
</html>
app.js
var http = require('http');
var urllib = require('url');
var fs = require('fs');
var html = fs.readFileSync('./app.html');
var app = http.createServer(function(req, res){
var params = urllib.parse(req.url, true);
if (params.pathname === '/login') {
res.end(html);
} else if (params.pathname === '/check') {
var params = urllib.parse(req.url, true);
res.end(JSON.stringify(params.query));
}
});
app.listen(5678, function(){
console.log('server is listening on 5678');
});
二、ポスト操作
postの実現は比較的に煩わしいので、buffer.co pyという関数に特に注意してもいいです.
app.
<html>
<head>
<title> </title>
</head>
<body>
<form action="check" method="post">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
</body>
</html>
app.js:var http = require('http');
var urllib = require('url');
var fs = require('fs');
var querystring = require('querystring');
var html = fs.readFileSync('./app.html');
var app = http.createServer(function(req, res){
var params = urllib.parse(req.url, true);
if (params.pathname === '/login') {
res.end(html);
} else if (params.pathname === '/check') {
var chunks = [];
var length = 0;
var rows = null;
req.on('data', function(data){
chunks.push(data);
length += data.length;
})
req.on('end', function(){
var rows = new Buffer(length);
var len = 0;
for (var i = 0, il = chunks.length; i < il; i++) {
chunks[i].copy(rows, len);
len += chunks[i].length;
}
var args = querystring.parse(rows.toString());
res.end(JSON.stringify(args));
})
}
});
app.listen(5678, function(){
console.log('server is listening on 5678');
});