这里有新鲜出炉的 Node.js 主要方法使用说明,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
这篇文章主要为大家详细介绍了 Node.js 获取前端 ajax 提交的 request 信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
今天看一下 Node.js 怎么获取 ajax 提交的 request 信息
众所周知,ajax 可以在不刷新整个页面的情况下实现局部刷新,这是相当好的一种方式,能够让我们动态更新信息,今天我们看一下怎么用 node 来接收到前端 ajax 提交过来的信息
下面我贴一下前端的代码 index.html 的代码我就不贴了, 因为里面就只有一个按钮而已,要实现的功能是点击按钮提交 ajax 异步请求
主要贴一下 js 页面的代码
- $("button").on("click",
- function() {
- //提交ajax请求
- $.ajax({
- url: "http://localhost:9999",
- data: {
- name: 'xiaoming',
- age: 19
- },
- type: "POST",
- dataType: "json",
- async: true,
- timeout: 5000,
- complete: function() {
- console.log("end");
- },
- success: function(data, textStatus, jqXHR) {
- console.log(data);
- console.log(textStatus);
- console.log(jqXHR);
- },
- error: function(textStatus, jqXHR) {
- console.log("error");
- console.log(textStatus);
- console.log(jqXHR);
- }
- });
- });
这样我们就已经异步提交了一个 ajax 请求给服务端。
由于我的服务端是用 node 写的,我贴一下 node.js 的代码
- /**
- * New node file
- */
- //载入模块
- var http = require("http");
- function onRequest(req, resp) {
- //获取ajax提交的信息
- req.on("data",
- function(data) {
- //打印
- console.log(decodeURIComponent(data));
- });
- //返回response
- resp.writeHead(200, {
- "ContentType": "text/html;charset=utf-8"
- });
- //返回响应尾
- resp.end();
- }
- //创建服务器
- http.createServer(onRequest).listen(9999);
服务器获取的结果如下:
- name=xiaoming&age=19
乍一看,其实获取 ajax 的请求信息是非常简单,我在 node 里创建了服务器,然后给 request 添加 data 事件,做了一个回调处理,然后就可以获取到 ajax 提交过来的数据了
但是这样的话,我们还是不能灵活的使用这个数据,我们必须用 split 将其 name 和 age 的 value 分割出来,这是相当不方便的。
于是我们想到了用 querystring 来解析为 json 对象,我们只需要稍稍修改一下刚刚的代码就可以实现
- /**
- * New node file
- */
- //载入模块
- var http = require("http");
- var qs = require("querystring");
- function onRequest(req, resp) {
- //获取ajax提交的信息
- var currentData = "";
- req.on("data",
- function(data) {
- //打印
- currentData += data;
- console.log(qs.parse(currentData));
- });
- //返回response
- resp.writeHead(200, {
- "ContentType": "text/html;charset=utf-8"
- });
- //返回响应尾
- resp.end();
- }
- //创建服务器
- http.createServer(onRequest).listen(9999);
下面是运行的结果
- {
- name: 'xiaoming',
- age: '19'
- }
我们也可以将它装到一个变量里,然后使用它的各种属性
- var temp = qs.parse(data);
- console.log(temp.name);
- console.log(temp.age);
来源: http://www.phperz.com/article/17/0503/327441.html