其实很早就对nodejs感兴趣没时间研究,最近做web前端感觉时间还充裕,来看看曾经买的图灵的nodejs书,也记录一下学习学习。防工具盗链抓取 freddon所有
其实基于google v8引擎而上的nodejs,服务端写javascript还是优点多多的,尤其是对于我这样一个一直喜欢javascript的人来说真是haliluya!hayaya! nodejs是单进程(严格意义来讲是无线程概念的)、采取事件轮询、回调等等来达到‘多任务’的效果,好了,我简单就说这么多。上Code!
为了好代码好看、测试好操作,get、post请求方式全在一个js文件里面写了
说明部分也全写在代码里了,也养成一个好习惯
app.js
/*导入需要用到的nodejs库*/ var http = require(‘http‘); var url = require(‘url‘); var qs = require(‘querystring‘); /** * 简单配置个路由 用来检测无用的请求 仅符合路由规则的才能被接受 * 自己可以按照需要定义 * @type {{/: string, favicon: string, user: string, login: string, biz: string}} */ var route = { ‘/‘: "/", ‘favicon‘: ‘/favicon.ico‘, ‘user‘: ‘/user‘, ‘login‘: ‘/user/login‘, ‘biz‘: ‘/biz‘ }; /** * 上述路由的简单判断规则 * @param reqPath * @returns {boolean} */ var isValid = function (reqPath) { for (var key in route) { if (route[key] == reqPath) { return true; } } return false; }; /** * 照样输出json格式的数据 * @param query * @param res */ var writeOut = function (query, res) { res.write(JSON.stringify(query)); res.end(); } /** * 启用http创建一个端口为8124的服务 * createServer内侧为回调函数: * ...可看作java servlet中的 onService(HttpRequest,HttpResponse) * ...或者(doGet、doPost) */ http.createServer(function (req, res) { if (!isValid(url.parse(req.url).pathname)) { res.writeHead(404, {‘Content-Type‘: ‘text/plain;charset=utf-8‘}); res.write("{‘errcode‘:404,‘errmsg‘:‘404 页面不见啦‘}"); res.end(); } else { res.writeHead(200, {‘Content-Type‘: ‘text/plain;charset=utf-8‘}); if (req.method.toUpperCase() == ‘POST‘) { var postData = ""; /** * 因为post方式的数据不太一样可能很庞大复杂, * 所以要添加监听来获取传递的数据 * 也可写作 req.on("data",function(data){}); */ req.addListener("data", function (data) { postData += data; }); /** * 这个是如果数据读取完毕就会执行的监听方法 */ req.addListener("end", function () { var query = qs.parse(postData); writeOut(query, res); }); } else if (req.method.toUpperCase() == ‘GET‘) { /** * 也可使用var query=qs.parse(url.parse(req.url).query); * 区别就是url.parse的arguments[1]为true: * ...也能达到‘querystring库’的解析效果,而且不使用querystring */ var query = url.parse(req.url, true).query; writeOut(query, res); } else { //head put delete options etc. } } }).listen(8124, function () { console.log("listen on port 8124"); });
其实只要能发请求就行了 ,有在线的post、get请求工具(前提是nodejs程序要上传到自己的服务器)也有可以下载的postman等等,当然也可以手动写一个html的form表单提交不就好了吗 防工具盗链抓取 freddon所有
如果服务端在自己本地,而且端口用上面所说的8124,so:
html文件如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form method="post" action="http://127.0.0.1:8124/biz" > <input name="name" type="text" value="freddon" /> <input name="domain" type="text" value="http://www.sagosoft.com/"/> <input type="submit" value="以POST提交" /> </form> <form method="get" action="http://127.0.0.1:8124/biz" > <input name="name" type="text" value="freddon" /> <input name="domain" type="text" value="http://www.sagosoft.com/"/> <input type="submit" value="以GET提交" /> </form> </body> </html>
挺简单吧。ok,就到这里了。防工具盗链抓取 freddon所有
转载须注明:http://my.oschina.net/freddon/blog/513853
[Nodejs]初探nodejs学习笔记- 如何使用nodejs接收get/post 数据(参数)
原文:http://my.oschina.net/freddon/blog/513853