夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> NodeJs视频教程
Node.js GET/POST请求
夜鹰教程网 来源:www.yyjcw.com 日期:2018-6-2 18:48:47
Node.js GET/POST请求


在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。

表单提交到服务器一般都使用 GET/POST 请求。

本章节我们将为大家介绍 Node.js GET/POS T请求。

获取GET请求内容

由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。

node.js 中 url 模块中的 parse 函数提供了这个功能。

实例

var http = require('http');

var url = require('url');

var util = require('util');

 

http.createServer(function(req, res){

    res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});

    res.end(util.inspect(url.parse(req.url, true)));

}).listen(3000);

在浏览器中访问 http://localhost:3000/user?name=菜鸟教程&url=www.runoob.com 然后查看返回结果:


获取 URL 的参数

我们可以使用 url.parse 方法来解析 URL 中的参数,代码如下:

实例

var http = require('http');

var url = require('url');

var util = require('util');

 

http.createServer(function(req, res){

    res.writeHead(200, {'Content-Type': 'text/plain'});

 

    // 解析 url 参数

    var params = url.parse(req.url, true).query;

    res.write("网站名:" + params.name);

    res.write("\n");

    res.write("网站 URL:" + params.url);

    res.end();

 

}).listen(3000);

在浏览器中访问 http://localhost:3000/user?name=菜鸟教程&url=www.runoob.com 然后查看返回结果:


获取 POST 请求内容

POST 请求的内容全部的都在请求体中,http.ServerRequest 并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。

比如上传文件,而很多时候我们可能并不需要理会请求体的内容,恶意的POST请求会大大消耗服务器的资源,所有node.js 默认是不会解析请求体的,当你需要的时候,需要手动来做。

基本语法结构说明

var http = require('http');

var querystring = require('querystring');

 

http.createServer(function(req, res){

    // 定义了一个post变量,用于暂存请求体的信息

    var post = '';     

 

    // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中

    req.on('data', function(chunk){    

        post += chunk;

    });

 

    // 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。

    req.on('end', function(){    

        post = querystring.parse(post);

        res.end(util.inspect(post));

    });

}).listen(3000);

以下实例表单通过 POST 提交并输出数据:

实例

var http = require('http');

var querystring = require('querystring');

 

var postHTML = 

  '<html><head><meta charset="utf-8"><title>菜鸟教程 Node.js 实例</title></head>' +

  '<body>' +

  '<form method="post">' +

  '网站名: <input name="name"><br>' +

  '网站 URL: <input name="url"><br>' +

  '<input type="submit">' +

  '</form>' +

  '</body></html>';

 

http.createServer(function (req, res) {

  var body = "";

  req.on('data', function (chunk) {

    body += chunk;

  });

  req.on('end', function () {

    // 解析参数

    body = querystring.parse(body);

    // 设置响应头部信息及编码

    res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});

 

    if(body.name && body.url) { // 输出提交的数据

        res.write("网站名:" + body.name);

        res.write("<br>");

        res.write("网站 URL:" + body.url);

    } else {  // 输出表单

        res.write(postHTML);

    }

    res.end();

  });

}).listen(3000);


复制链接 网友评论 收藏本文 关闭此页
上一条: Node.js 工具模块  下一条: Node.js 文件系统
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
在Windows系统下搭建SVN服务器
宽带连接速度慢
在iis下设置伪静态的规则和方法
Oralce 9i安装OID目录服务器说明
需要停止的windows 2003 server服…
.htaccess文件设置技巧16则
Apache SSL证书安装指南
linux下手工修改分区后的挂载
MSN服务器为什么不放置在中国境内…
自定义MIME类型 网络空间支持FLV
稳定的国外网站服务器对SEO排名没…
Windows下定期自动备份网站软件—…
实战讲解:从零开始配置Linux服务器…
IIS错误代码及其含义
服务器领域众“菜鸟”们的几个常见…
  最近更新
nodejs文件上传代码
nodejs如何设置允许跨域请求
npm 项目更换目录后无法启动
Git常用命令学习
Node.js 连接 MongoDB
Node.js JXcore 打包
Node.js 多进程详解
Node.js RESTful API
Node.js Express 框架 文件上传等…
Node.js Web 模块
Node.js 工具模块
Node.js GET/POST请求
Node.js 文件系统
Node.js 常用工具函数
Node.js 全局对象

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3