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();//写在互调函数外面会报错的哟 } }) } }
相关文章推荐
- node 的express 如何接受以一个网站的url作为参数的路由
- Node.js进击基础一(5-11事件模块)
- 黑马程序员_OC基础11_@property参数
- 初次接触node GET和POST参数接受
- Node基础:url查询参数解析之querystring
- asp+sql的存储过程出错"800a0bb9 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。"
- 初学prototype,发个JS接受URL参数的代码
- JavaScript接受URL参数的代码
- D语言游戏编程(11):D语言基础之模板和混入(mixin)技术
- asp.net控件开发基础(11)
- [FxCop.设计规则]11. 不应该使用默认参数
- HTML页面如何象ASP一样接受参数
- asp.net控件开发基础(11)
- javascript在静态页面上接受参数的方法
- 初学prototype,发个JS接受URL参数的代码
- [软件架构训练基础教程-11]下部构造
- 使HTM页面像ASP页面一样接受参数!
- 初学prototype,发个JS接受URL参数的代码
- [FxCop.设计规则]11. 不应该使用默认参数
- 原创:Java基础,参数配置,注意事项! jdk1.5+jsp+mysql+tomcat的配置