`

Node.js 处理 GET/POST 请求

 
阅读更多

我们需要通过查看 HTTP 请求,

从中提取出请求的 URL 以及 GET/POST 参数,

随后“路由”根据这些数据来执行相应的代码。

为了解析这些数据,我们需要额外的 Node.js 模块,

它们分别是 url  querystring,具体的使用方法可以点击链接查看相应手册或参考下表:

                               url.parse(string).query
                                           |
           url.parse(string).pathname      |
                       |                   |
                       |                   |
                     -------------------------
http://localhost:8888/start?foo=bar&hello=world
                                ---       -----
                                 |          |
                                 |          |
        querystring.parse(string)["foo"]    |
                                            |
                         querystring(string).parse["hello"]

既然知晓了 Node.js 处理 GET/POST 请求的原理,我们先来写个简单的 GET 请求处理:

var http =require('http');
var url =require('url');

http.createServer(function(req, res){
    // 获取 URL 路径并在控制台上打印
    var pathname = url.parse(req.url).pathname;
    console.log('Request for '+ pathname +' received.');

    res.writeHead(200,{'Content-Type':'text/plain'});
    res.end('Hello World\n');
}).listen(1337,'127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');

到此我们已经可以通过 URL 路径来区别不同的 GET/POST 请求,

相比较 GET 请求,POST 请求一般比较“重“,为了使整个过程非阻塞,

Node.js 会将 POST 数据拆分成很多小的数据块,然后通过触发特定的事件,将这些小数据块传递给回调函数。

这里特定的事件包括:data(新的小数据块到达)和 end(所有的数据都已经接收完毕),

具体的使用方法可以点击链接查看相应手册或参考以下代码:

var http =require('http');

http.createServer(function(req, res){
    var postData ='';

    // 设置接收数据编码格式为 UTF-8
    req.setEncoding('utf8');

    // 接收数据块并将其赋值给 postData
    req.addListener('data',function(postDataChunk){
        postData += postDataChunk;
    });

    req.addListener('end',function(){
        // 数据接收完毕,执行回调函数
    });

    res.writeHead(200,{'Content-Type':'text/plain'});
    res.end('Hello World\n');
}).listen(1337,'127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');

最后附上一篇 Node入门,希望对大家深入理解有所帮助!

分享到:
评论

相关推荐

    Node.js系列之发起get/post请求(2)

    下面,我们来看一下node.js发起get/post请求。 1、get 由于get请求的参数在url后面,所以相对比较简单。node.js中的url模块提供了parse函数来处理。具体代码如下: //引入模块 var http=require('http'); var url=...

    微信小程序 Node.js (基础十一) 全局对象 & (基础十二) GET/POST请求 ...

    微信小程序 Node.js (基础十一) 全局对象   在浏览器 JavaScript 中,通常 window 是全局对象。 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。 global 最根本的...

    nodejs之koa2请求示例(GET,POST)

    GET 请求 在 koa 中,GET请求获取请求数据request对象中的 query 方法和 querystring 方法, query方法返回的是格式化好的参数,querystring 方法返回的是请求字符串。废话不多说,直接上代码 app.js 中添加如下代码...

    weibo-node-sdk.zip

     method: 'get', //请求方法,post或者get(get可省略),参考api文档  params: { //默认参数,不用填写appkey和access_token,程序会自动补上  } } 可以讲接口统一写到一个json或者js文件中,然后使用 ...

    从零开始学习Node.js系列教程一:http get和post用法分析

    本文实例讲述了Node.js中http get和post用法。分享给大家供大家参考,具体如下: httpserverrequestget.js /* 获取GET请求内容 由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你...

    node.js处理前端提交的GET请求

    前言:AJAX的盛行,使得浏览器与服务器之间的交互越来越强大,我们需要通过 HTTP 通信,并从中提取出请求的 URL 以及 GET/POST 参数。随后需要根据这些数据来执行相应的操作,从而实现前后端交互。  一、获取GET...

    cgi-node:CGI Node.js完整模块,以替换共享托管(例如GoDaddy)上PHP

    特征完整轻松地访问HTTP请求: url:node.js URL对象。 方法:GET | 发布| ... 标头:{名称:值,...} Cookies:{名称:值,...} 查询/表格:{fieldName:fieldValue,...。} POST数据,例如表单和文件完整而简单的...

    nodejs之get/post请求的几种方式小结

    最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法: (1)get方法 前端代码: <form action = /login method = GET> ...

    本文主要介绍NodeJS+Express+Mysql 实现POST和GET请求的增删改查

    本文主要介绍NodeJS+Express+Mysql 实现POST和GET请求的增删改查,后续会在博客发布详细说明,可以关注一下

    node.js [superAgent] 请求使用示例

    post请求: 代码如下:  request.post(‘/api/pet’)  .end(function(resp,err){  if (resp.body.status===200) {  alert(‘yay got ‘ + JSON.stringify(res.body));  } else {  return next(resp....

    GET-POST-Requests-in-Node.js-Using-Express-4:Node.js 中使用 Express 4 的 GET 和 POST 请求

    GET-POST-Requests-in-Node.js-Using-Express-... Node.js 中使用 Express 4 的 GET 和 POST 请求 ##教程 ##要求 节点和 npm ##安装 克隆仓库:git clone 安装依赖项:npm install 启动服务器:节点 server.js

    基于Promise的Node.js MVC框架 ThinkJS.zip

    ThinkJS 是一个快速、简单的基于MVC和面向对象的轻量级Node.js开发框架,遵循MIT协议发布。秉承简洁易用的设计原则,在保持出色的性能和至简的代码同时,注重开发体验和易用性,为WEB应用开发提供强有力的支持。...

    myexpress:Node.js的微型Web框架

    特征类似于中间件堆栈挂载中间件软件以处理请求和响应支持错误处理中间件添加子应用程序作为中间件请求路径匹配器和路由处理程序路径参数匹配与提取嵌套的应用程序前缀路径修整猴子补丁请求和响应重新导向设置...

    NodeJS收发GET和POST请求的示例代码

    本文介绍了NodeJS收发GET和POST请求的示例代码,分享给大家,也给自己留个笔记 一 express框架接收 app.get('/',function(req,res) { var url = req.query.url; var name = req.query.name; console.log(url, ...

    flowhttp:将 node.js http(s) 视为简单的双工流

    将 node.js http(s) 视为简单的双工流 安装 npm install flowhttp 基本用法 var flowHttp = require ( 'flowhttp' ) ; // A simple GET request flowHttp ( 'http://example.com' ) . pipe ( process . stdout ) ...

    从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例

    本文实例讲述了Node.js基于connect和express框架的多页面实现数学运算。分享给大家供大家参考,具体如下: 1、使用connect框架 .use方法用于绑定中间件到connect服务器,它会配置一系列在接到请求时调用的中间件模块...

    node+express实现本地部署服务器加载本地资源和接口

    # web服务器说明文档(node+express) ### 1.首先自定义数据文件,进行上传,上传地址:...*** ### 2....### 3.请接口求方式post,请求接口固定为 `'/get_data'`,参数为上传的文件名称`name: test_data`

    node.js开发后台管理系统,列表数据获取和新纪录提交(包括获取file类型提交)

    node.js链接mysql获取数据,写get,post请求完成列表数据获取和提交数据,只是获取到数据保存在node本地没有上传my服务器,如有需要可以在此项目中添加

    重新封装了下node-mongo服务.zip

    可以直接通过get/post来操作 # consts.js 配置用的数据,用于全局参数配置 # log.js 自己写的一个简单的存储本地log的功能,数据库异常或者逻辑上产生异常数据的时候输出查错 # servicemongo.js 主服务程序,可以...

Global site tag (gtag.js) - Google Analytics