前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >react学习系列3 使用koa-router模拟后台接口

react学习系列3 使用koa-router模拟后台接口

作者头像
mafeifan
发布2018-09-10 11:55:32
1.3K0
发布2018-09-10 11:55:32
举报
文章被收录于专栏:finleyMafinleyMa

当用create-react-app创建好项目,启动后会自动打开 localhost:3000。 我们希望当访问 localhost:3000/api/todo 会向后台发起一个请求,拿到我们想要的 json 数据。并渲染到前台。 这样的话需要先创建一个后台服务器。我们使用NodeJS的 express 或 koa 服务器框架。下面以 koa 为例。

实现方法如下:

  1. 安装koa和koa-router。注意我的当前版本是最新的 koa2.3.0 和 koa-router7.2.1 yarn add koa koa-router
  2. 项目根目录创建一个mock目录,并新建一个server.js 内容如下:
代码语言:javascript
复制
var Koa = require('koa');
var Router = require('koa-router');

var app = new Koa();
var router = new Router();

router.get('/', function (ctx, next) {
  console.log('say');
  ctx.body = 'hello koa !'
});

// 加前缀
router.prefix('/api');

// 模拟json数据
var todo = require('./todo.js')
router.get('/todos', function (ctx, next) {
  console.log('--todo--')
  ctx.body = todo
});

// 开始服务并生成路由
app.use(router.routes())
   .use(router.allowedMethods());
app.listen(4000);

todo.js

代码语言:javascript
复制
module.exports = [
    {
        title: 'title1',
    },
    {
        title: 'title2',
    }
]
  1. package.json 添加代理信息 "proxy": "http://localhost:4000", 这样当我们在create-react-app的代码里调用fetch('api/todos') 会被代理执行http://localhost:4000/api/todos 并且在 script 节点下添加 "mock": "node ./mock/server.js" 这样执行 yarn mock 就启动了这个后台服务
  2. 在 react 中比如入口的 index.js 中添加测试代码。 我们使用 fetch ,发起客户端请求。
代码语言:javascript
复制
fetch('/api/todos')
  .then(res => res.json())
  .then(res => {
    console.log(res)
  })

参考:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.11.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档