NodeJS中常见异步接口定义(get、post、jsonp)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了NodeJS中常见异步接口定义(get、post、jsonp),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2293字,纯文字阅读大概需要4分钟。
内容图文
越来越多的人在使用nodeJS,作为一门服务端语言,我们不可避免的要写异步接口(ajax和jsonp)。再次强调ajax和jsonp是两个概念,但是由于jquery的封装,使这两种异步接口的调用方式,看起来比较相近,但在底层差别还是比较大的(本文只写服务端的实现)。
为了便于讲解我使用express框架来运行我的demo。并分别讲解如何获取参数,并返回结果。本文相当于一个基础篇,只写了一些常见的应用场景。漏掉一些复杂的场景,还望提醒。
一、Ajax——post请求
之所以先从post开始,是因为我想把get和jsonp挨的比较近一些。而且post获取参数的方式和两外两种相比差别比较大。
一个基本的post请求:
1 var express = require(‘express‘);var router = express.Router(); 2 3 router.post(‘/simplePost‘, function (req, res, next){ 4var param = req.body; 6//console.log(param); 7//todo something 9 res.json({"errorCode": 0,"errorMessage": ‘save‘}); 11 });
router是框架中定义路由的对象,我们相当于在router上绑定对应controller的回调函数。回调函数中会传入3个变量,分别封装了请求(req)、响应(res)和下一个中间件(next)。在post请求中参数被封装在req中的req.body 我们 console.log(param); 就可以在控制台看到参数了。通过一系列操作,当我们想返回结果(通常为json)的时候,就需要调用res下的json来将一个对象返回客户端(前端)。
二、Ajax——get请求
get 请求和post大体相近,但略有不同。不多说,先看代码:
1 var express = require(‘express‘); 2var router = express.Router(); 3var urllib = require(‘url‘); 4 5 router.get(‘/simpleGet‘, function (req, res, next){ 6var params = urllib.parse(req.url, true); 7//console.log(‘params‘,params); 8var query = params.query; 9 // todo something 10 res.json({"errorCode": 0,"errorMessage": ‘save OK‘}); 11 });
get请求的参数不可以直接在req.body中取出,要想获取参数就要先加载“url”模块 var urllib = require(‘url‘); 通过模块封装的方法parse取出包含参数的对象,并将query取出,这是打印query,就可以看到前端发来的参数了。至于返回结果,就合post一样了。
三、jsonp
jsonp实际上发出的是一个js文件请求,所以本质上是get请求(但不是Ajax)。jsonp在获取参数这块和get(ajax)是一样的。但不同在与返回结果的方式。
1 var express = require(‘express‘); 2var router = express.Router(); 3var urllib = require(‘url‘); 4 5 router.get(‘/simpleJsonp‘, function (req, res, next){ 6var params = urllib.parse(req.url, true); 7var reqData = {}; 8var query = params.query; 91011//res.send(reqData);12//console.log(params);1314// todo somthing 15if(params.query && params.query.callback){ 16var str = params.query.callback + ‘(‘ + JSON.stringify(reqData) + ‘)‘;//jsonp 17 res.end(str); 18 }else{ 19 res.end(JSON.stringify(reqData)); 20 } 21 });
我们需要在获取参数后判断有没有约定好的回调函数的属性名“callback” —— if(params.query && params.query.callback){}。如果没有我认为我可以按普通的get(ajax)来处理,反之我认为是jsonp。jsonp需要将“调用”的方式,将结果返回:
params.query.callback + ‘(‘ + JSON.stringify(reqData) + ‘)‘;
总结:
这样就完成了常用异步接口的盘点,文中都是一些常见的最基本的场景。但是这也是复杂场景的基石。文中不对的地方还望大家多多斧正。
原文:http://www.cnblogs.com/webARM/p/5452570.html
内容总结
以上是互联网集市为您收集整理的NodeJS中常见异步接口定义(get、post、jsonp)全部内容,希望文章能够帮你解决NodeJS中常见异步接口定义(get、post、jsonp)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。