[Node.js]get/post请求
摘要
在很多情况下,我们的web服务器都需要接受客户端浏览器传递的参数或者数据。最常见的是get和post请求。
获取get请求的内容
get请求传递的参数在url中,参数部分在?后面。因此可以手动解析后面的内容作为get请求的参数。node.js中url模块中的parse函数提供了这个功能。
一个例子
var http=require("http"); var url=require("url"); var util=require("util"); http.createServer(function(request,response){response.writeHead(200,{"Content-Type":"text/plain"});response.end(util.inspect(url.parse(request.url,true))); }).listen(5544);
启动服务器
浏览器访问
使用parse解析url中的参数
webserver.js核心代码如下:
var http=require("http"); var url=require("url"); var util=require("util"); function start(route){function onRequest(request,response){response.writeHead(200,{"Content-Type":"text/plain"});//解析url参数var params=url.parse(request.url,true).query;response.write("my name is "+params.name);response.end();};http.createServer(onRequest).listen(5544);console.log("web server has started."); }; exports.start=start;
route.js代码如下:
function route(pathname){console.log("request the route "+pathname); }; exports.route=route;
user.js代码如下
var server=require("./webserver"); var router=require("./router"); server.start(router.route);
启动webserver
浏览器浏览
post请求
post请求的内容全部在请求体中,http.ServerRequest并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。
比如上传文件,而很多时候我们可能并不需要理会请求体内容,恶意的post请求会大大消耗服务器资源,所以node.js默认是不会解析请求体的,当你需要的时候,需要手动来做。
一个例子
var http=require("http"); var url=require("url"); var util=require("util"); var querystring=require("querystring"); function start(route){function onRequest(request,response){//定义一个post变量,用于暂时村塾请求体信息。var post='';//通过request的data事件监听函数,每当接受到请求的数据,就累加到post变量中request.on("data",function(chunk){post+=chunk;});//在end事件触发后,通过querystring.parse将post解析为真正的post请求格式,然后想客户端返回。request.on("end",function(){post=querystring.parse(post);response.end(util.inspect(post));});response.writeHead(200,{"Content-Type":"text/plain"});//解析url参数var params=url.parse(request.url,true).query;response.write("my name is "+params.name);response.end();};http.createServer(onRequest).listen(5544);console.log("web server has started."); }; exports.start=start;
学习资料
http://www.runoob.com/nodejs/node-js-get-post.html
转载于:https://www.cnblogs.com/wolf-sun/p/6476373.html
[Node.js]get/post请求相关推荐
- Node.js跨域请求解决方案
Node.js跨域请求解决方案 一.缘由: 初到公司,老大让去解决之前项目客户提出的一个小问题,对某一模块进行访问验证,之前的项目是PHP做的,对此不了解,因此不打算先学习PHP再去解决问题,考虑到客 ...
- 关于Node.js的httpClieint请求报错ECONNRESET的原因和解决措施
原文: 关于Node.js的httpClieint请求报错ECONNRESET的原因和解决措施 自己的一点理解: 1: Node.js提供的HttpServer默认设置了超时时间为2分钟,当一个请求的 ...
- node.js request get 请求怎么拿到返回的数据_使用JS和NodeJS爬取Web内容
作者 | Shenesh Perera译者 | 王强策划 | 李俊辰这些年来 Javascript 进步飞快,又引入了称为 NodeJS 的运行时,所以已经成为了最流行和使用最广泛的语言之一.不管你要 ...
- node.js中获取请求当前页的前一页URL地址
2019独角兽企业重金招聘Python工程师标准>>> PHP中获取请求当前页的前一页URL地址,用如下代码就可以实现: $_SERVER['HTTP_REFERER'] 在node ...
- Node.js发送HTTP请求
在Node.js中发送HTTP请求,用的比较多的是request组件,该组件的功能非常强大,但是该组件需要通过回调函数的方式获取操作的结果. 由于现在Node.js对ES6已经支持的比较好了,我们更希 ...
- Node.JS跨域请求配置方案
今天在用node开发的过程中,再次遇到同源策略的问题: 在客户端调用服务端获取数据时,Chrome 浏览器中报错如下: Access to XMLHttpRequest at 'http://loca ...
- node.js request get 请求怎么拿到返回的数据_NodeJS运维: 从 0 开始 Prometheus + Grafana 业务性能指标监控...
为什么需要指标监控告警 一个复杂的应用,往往由很多个模块组成,而且往往会存在各种各样奇奇怪怪的使用场景,谁也不能保证自己维护的服务永远不会出问题,等用户投诉才发现问题再去处理问题就为时已晚,损失已无法 ...
- node.js request get 请求怎么拿到返回的数据_从零开始用nodejs写一个简单的静态服务器
nodejs搭建服务器第一步 const http = require("http")const PORT = 8000 const server = http.createSer ...
- Node.js + Express 接口请求(GET、POST、PUT)事例
路由 路由是指应用程序的端点(URI)如何响应客户端请求.有关路由的介绍,请参阅基本路由. 您可以使用Express app对象的方法定义路由,这些方法对应于HTTP方法; 例如,app.get()处 ...
最新文章
- 微信架构 支付架构(上)
- python遗传算法八皇后_遗传算法之:八皇后问题
- 【NLP】如何提升BERT在下游任务中的性能
- 关于ViewTreeObserver的理解
- C#高级应用之CodeDomProvider引擎篇 .
- 在落雨的鼓浪屿打着伞到处走走找个地方坐坐
- 小程序api 分享scene_微信小程序 插件调用API的限制
- iOS AVPlayer视频播放器
- MFC学生信息管理系统
- 2017 追梦 远方
- 微信小程序之在线任务发布与接单平台
- java跳转页面_几种方式实现Javaweb页面跳转
- Windows安全更新出现0x800f081f错误解决方案
- Android快速开发推荐10个框架Android 快速开发框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、
- 一图了解群、交换群、环、交换环、整环、域的区别与联系
- 第三方支付接入之支付宝当面付
- k2虚拟服务器功能,配置图形加速的View虚拟桌面-NVIDIA GRID K2使用指南
- Bitwig Studio 4 v4.3 WiN-MAC-Linux 跨多平台音乐制作软件
- CSharp(C#)语言_委托和事件区别详解
- SpringBoo Mybatis Druid配置多数据源