`

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实现上传/展示图片

    3. **路由处理**:创建一个接收POST请求的路由,使用multer处理文件上传: ```javascript app.post('/upload', upload.single('image'), (req, res) => { res.send('File uploaded successfully!'); }); ``` ...

    Node.js Express框架GET、POST、COOKIE、上传、数据库等测试实例

    Node.js 是一个基于 Chrome V8 引擎的 ...以上就是 Node.js Express 框架中关于 GET、POST 请求、Cookie 操作、文件上传以及数据库交互的基本知识点。通过学习和实践这些概念,你可以构建功能丰富的 web 应用程序。

    Node.js-baidudl从pan.baidu.com提取高速下载链接地址

    在Node.js中,常用的HTTP库有http模块(原生提供)和axios等第三方库,它们可以方便地发送GET、POST等HTTP请求。baidudl可能使用了这些工具,通过模拟浏览器行为,获取并解析百度网盘网页中的关键信息,包括高速下载...

    Node.js-一个用于自动获取支付宝账单信息的Node.js模块

    这个模块利用了Node.js的非阻塞I/O和事件驱动特性,使得在服务器端处理大量并发请求时能保持高效。 Node.js是一种JavaScript运行环境,它使用V8引擎,让开发者可以在服务器端使用JavaScript编写代码。由于Node.js的...

    Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备项目笔记及源码

    // 处理POST请求 if (req.method === 'POST') { let body = []; req.on('data', chunk => body.push(chunk)); req.on('end', () => { body = Buffer.concat(body).toString(); // ... }); } // 写入响应...

    node.js乘法平方例子

    例如,它可能包含用于设置路由、处理GET和POST请求的函数,以及返回HTTP响应的逻辑。 接下来是`mult-node.js`,这可能包含了乘法操作的实现。在这个文件中,开发者可能会定义一个函数,接收两个参数并返回它们的...

    Node.js-Node.js的简单路由器ES7装饰器

    在Node.js环境中,路由器是构建Web应用程序的关键组件,它负责处理HTTP请求并将其路由到相应的处理器函数。在本教程中,我们将深入探讨如何使用ES7装饰器(Decorator)来创建一个简单的Node.js路由器。装饰器是一种...

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

    在本篇"Node.js系列之发起get/post请求(2)"中,我们将深入探讨如何在Node.js环境中实现这两种请求。 1. GET请求: GET请求通常用于获取资源,其参数附在URL后面。在Node.js中,我们可以使用内置的`http`模块创建...

    Node.js入门源代码及开发工具

    3. **HTTP服务器**:使用Node.js内置的http模块,你可以创建一个简单的HTTP服务器,处理GET和POST请求,这对于构建Web应用非常有用。 4. **文件系统操作**:Node.js提供了fs模块,可以用来读写文件、创建、删除目录...

    Node.js-flashheart-一个功能完整的Node.jsREST客户端具有易于使用的特点

    下面是一个使用`FlashHeart`进行POST请求的例子,向服务器发送JSON数据: ```javascript const flashheart = require('flashheart'); const data = { name: 'John Doe', age: 30 }; const options = { url: '...

    Node.js-axios基于Promise的HTTP客户端用于浏览器和node.js

    **Node.js与axios** 在Node.js的开发环境中,进行HTTP请求是常见的任务,而axios则是一个非常受欢迎的库,它提供了基于Promise的API,适用于浏览器和Node.js环境。这个库使得处理HTTP请求变得简单易用,同时保持了...

    ajax服务端代码node.js

    综上所述,这个示例展示了如何使用 Node.js 的 Express 框架来构建一个基本的 Ajax 服务端,其中包括对 GET、POST 和 JSONP 请求的处理。通过这样的服务端,客户端(如使用 Vue-resource 的前端应用)可以方便地进行...

    学习node.js,搭建博客 共17章

    在搭建博客时,我们会使用Express来构建我们的应用骨架,设置路由,处理GET和POST请求,以及渲染HTML视图。 **3. 数据库连接** 博客系统通常需要存储用户信息、文章内容和评论等数据。Node.js可以与多种数据库进行...

    Node.js开发Web后台服务1

    Node.js是一个基于Google Chrome V8引擎的JavaScript运行环境,它以其事件驱动、非阻塞I/O模型而著名,这使得Node.js轻量且高效,适合处理大量并发的实时数据密集型应用。Node.js的包管理器npm是全球最大的开源库...

    Node.js-phin非常简单轻量级无依赖的Node.JSHTTP请求客户端

    2. **发送POST请求**: ```javascript phin.post('https://example.com/api/login', { data: {username: 'user', password: 'pass'}, }).then(response => { console.log(response.body); }); ``` 3. **设置...

    Node.js-nodejs实现的小项目

    在这个小项目中,HTTP工具可能包括设置路由、处理GET和POST请求、返回JSON数据等内容。 【项目结构】 movie-center-master这个文件夹名可能代表了项目的主分支或源代码仓库。项目结构通常包括以下几个部分: 1. `...

    Node.js-tiny-json-http极简的HTTP客户端用于GET和POSTJSON负载

    `tiny-json-http`是一个轻量级的Node.js库,专门设计用于简化JSON数据的GET和POST操作,它提供了一个简洁的API来处理HTTP请求,特别适合于快速开发和原型设计。 **一、tiny-json-http的安装与引入** 首先,你可以...

    基于Node.js的极简的学生管理系统

    - **增加**:通过POST请求,将新学生的信息(如姓名、学号、班级等)添加到数据库。 - **删除**:根据学号或ID,通过DELETE请求删除对应的学生记录。 - **修改**:使用PUT或PATCH请求,更新学生信息中的特定字段...

    Node.js-EXPRESS初始化平台搭建

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript能够在服务器端执行,打破了JavaScript只能在浏览器端使用的限制。Node.js具有非阻塞I/O模型,使其在处理高并发场景时表现出色,常用于构建高...

Global site tag (gtag.js) - Google Analytics