全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

利用Node.js+Koa框架实现前后端交互的方法

前言

对于一个前端工程师来说不仅仅要会前端的内容,后端的技术也需要熟练掌握。今天我就要通过一个案例来描述一下前端是如何和后端进行数据交互的。

koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。

准备工作

首先,我们的服务器需要部署好Nodejs的环境,这里我用Nodejs在windows下的本地服务器来做演示。

部署NodeJS环境请看:《Windows系统下安装Node.js的步骤图文详解》这篇文章。

对Koa框架不熟悉的朋友可以参考这篇文章:Node.js的Koa框架上手及MySQL操作指南

方法如下

环境部署好之后我们需要创建一个工程的目录,并且在目录中通过npm来安装Koa框架以及一些用到的依赖库。

下图是我完成后的目录结构。

cd到你的工程目录,然后执行npm koa目录里就会多出node_modules这样一个文件夹,里边存放用到的一些依赖库。


接下来我们创建一个app.js文件,用来设置访问服务器时用到的路由,代码如下

var koa = require('koa');
var controller = require('koa-route');//需要通过npm来添加此依赖
var app = koa();

var service = require('./service/WebAppService.js');//引用WebAppService.js

/*设置路由*/
app.use(controller.get('/ajax/search',function*(){
 this.set('Cache-Control','no-cache');
 this.set('Access-Control-Allow-Origin','*');
 var querystring = require('querystring');
 var params = querystring.parse(this.req._parsedUrl.query);
 var key = params.key;
 var start = params.start;
 var end = params.end;
 this.body = yield service.get_search_data(key,start,end);
}));

app.listen(3001);
console.log('Koa server is started');

node_modules文件夹内默认是没有koa-route这个依赖的,需要通过npm koa-route来安装

然后我们需要在service目录下创建一个WebAppService.js文件,用来请求接口,代码如下

var fs = require('fs');
exports.get_search_data = function(key,start,end){
 return function(cb){

  var http = require('http');
  var qs = require('querystring');
  var data = {
   key:key,
   start:start,
   end:end
  };

  /*请求MobAPI里的火车票查询接口*/
  var content = qs.stringify(data);
  var http_request = {
   hostname:'apicloud.mob.com',
   port:80,
   path:'/train/tickets/queryByStationToStation?' + content,
   method: 'GET'
  };

  var req = http.request(http_request,function(response){
   var body = '';
   response.setEncoding('utf-8');
   response.on('data',function(chunk){
    body += chunk;
   });
   response.on('end',function(){
    cb(null,body);
   });
  });

  req.end();
 }
}

这样实际是做了一个接口的转接,我们不仅可以请求本地的接口而且还可以请求第三方接口,避免了跨域请求时浏览器阻断请求。

接下来我们通过命令来开启服务,终端输入node app.js

然后在浏览器请求接口 http://localhost:3001/ajax/search?key=520520test&start=北京&end=上海

这样我们就实现了接口请求,并获得json数据,感兴趣的朋友可以看看下面文章,下面的文章会将这些从后端获得的数据以一种更加直观的方式呈现在界面上,并运用Vue.js框架制作一个火车票查询系统。

请看《利用Vue.js框架实现火车票查询系统(附源码)》

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# nodejs  # koa框架  # 前后端交互  # koa  # 前后端  # 如何从头实现一个node.js的koa框架  # node.js学习笔记之koa框架和简单爬虫练习  # Node.js的Koa框架上手及MySQL操作指南  # node.js中Koa框架的具体实现  # 这篇文章  # 创建一个  # 后端  # 查询系统  # 就会  # 还可以  # 原班人马  # 是由  # 感兴趣  # 我用  # 这样一个  # 成为一个  # 得心应手  # 来做  # 谢谢大家  # 第三方  # 准备工作  # 会将  # 多出  # 绑定 


相关文章: 如何用PHP快速搭建高效网站?分步指南  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何通过.red域名打造高辨识度品牌网站?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  建站之星与建站宝盒如何选择最佳方案?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  寿县云建站:智能SEO优化与多行业模板快速上线指南  宝塔新建站点报错如何解决?  c# 在ASP.NET Core中管理和取消后台任务  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  小型网站建站如何选择虚拟主机?  上海网站制作开发公司,上海买房比较好的网站有哪些?  建站主机如何选?高性价比方案全解析  如何在IIS7中新建站点?详细步骤解析  如何选择靠谱的建站公司加盟品牌?  Bpmn 2.0的XML文件怎么画流程图  建站之星后台密码遗忘如何找回?  python的本地网站制作,如何创建本地站点?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在云虚拟主机上快速搭建个人网站?  制作营销网站公司,淘特是干什么用的?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  实现点击下箭头变上箭头来回切换的两种方法【推荐】  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  官网网站制作腾讯审核要多久,联想路由器newifi官网  建站之星如何防范黑客攻击与数据泄露?  存储型VPS适合搭建中小型网站吗?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  淘宝制作网站有哪些,淘宝网官网主页?  如何高效搭建专业期货交易平台网站?  如何在阿里云虚拟主机上快速搭建个人网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  建站之星代理如何优化在线客服效率?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  建站之星后台密码遗忘?如何快速找回?  七夕网站制作视频,七夕大促活动怎么报名?  如何通过万网虚拟主机快速搭建网站?  网站制作报价单模板图片,小松挖机官方网站报价?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何实现建站之星域名转发设置?  开心动漫网站制作软件下载,十分开心动画为何停播?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  建站VPS配置与SEO优化指南:关键词排名提升策略 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。