您的位置:首页 > Web前端 > Node.js

node基础11:接受参数

2017-01-05 22:36 288 查看

1.接收参数

在Node中接受GET/POST请求的参数不像PHP那样,在PHP中直接有全局变量$_GET,$_POST来接受url,或者请求体重的参数。

在node中接受GET参数使用url.parse(req.url, true).query可以获取请求参数,使用queryString.parse(data)来从请求体中来获取字段。

// server.js
var http = require("http");
var url = require('url');
var router = require('./router');

http.createServer(function(req, res){
if ( req.url !== '/favicon.ico'){
pathname = url.parse(req.url).pathname.replace(/\//,'');
console.log(pathname);
try {
router[pathname](req, res);
} catch(e) {
console.log('error:'+e);
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
res.write(e.toString());
res.end();
};
}
}).listen(3000);
console.log("server running at http:127.0.0.1:3000");
/**
* router.js
*/
var fs = require('fs');
var url = require('url');
var querystring = require('querystring'); //post需要导入

module.exports = {
login: function(req, res){

/*****  GET 为同步获取参数 ***/
/* GET接受参数
var rdata = url.parse(req.url, true).query;
console.log(rdata);
if (rdata['email']!=undefined) {
console.log(rdata['email']);
}
*/
/*****  GET 为同步获取参数 ***/

/**************POST***********异步*********************/
var post ='';
req.on('data', function(chunk){
post += chunk;
});
req.on('end', function(){
post = querystring.parse(post);
console.log('收到参数:'+post['username']); //因为这里是异步,所以不能使用 res.write();
console.log('收到参数:'+post['password']);
//console.log('收到参数:'+post); // Cannot convert object to primitive value
// *** 这里会报错哟!!!! ***

fs.readFile('./login.html', function(err, data){
if( err){
console.log(err);
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'})
res.write(err.toString());
res.end();
} else {
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'})
res.write(data);
res.end();
}
})
})
/*************************异步*********************/

},
register:function(req, res){
fs.readFile('.register.html', function(err, data){
if(err) {
console.log(err);
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'})
res.write(err.toString());
res.end();
return;
} else{
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
res.write(data);
res.end();
}
})
},
showImage:function(req, res){
fs.readFile('./test.png',function(err, data){
if (err) {
console.log(err);
return;
} else{
console.log("开始读取图片");
res.writeHead(200, {'Content-Type':'image/jpeg'});
res.write(data);
res.end();//写在互调函数外面会报错的哟
}
})
}

}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: