本demo采用create-react-app脚手架初始化项目,用antd-mobile进行组件化展示,用node的express搭建本地环境,superagent进行前后端请求,鉴于node执行文件修改都需要重启,这里采用nodemon进行node启动,当node执行文件有修改,会自动重启应用后台服务。
逻辑结构都很简单,用到的node知识也是超级少,基本上看一遍把配置拿去用就能直接进行代理开发了,组件主要是为了展示,所以不用太在意某些业务细节,这里主要的目的是给大家看本地代理请求的做法。
首先项目结构:
src文件夹是业务代码,这个不是重点,app.js是node执行文件入口;router.js文件执行node读取本地josn文件返回数据的方法实现;config.js是做代理的一些配置文件;proxy-confit.js是本地代理的代理逻辑;然后上面文件夹proxy_data是准备好的本地json文件,调取接口时候就是node调取了本地json文件然后读取文件返回数据的一个过程。
首先需要注意的是,package.json加上proxy配置
目前网上查到好像说该配置仅仅对create-react-app初始化的项目起作用,作用就是将请求的路径修改到proxy路径,这里的host和port需要跟下面配置的host port对应。
详细解释一下:app.jsvar express = require('express');var bodyparser = require('body-parser');var router = require('./router');// 引入routervar config = require('./config');// 引入配置var app = express();app.use(router)// 注意执行app.use(bodyparser.json())// 注意加上,否则返回的是数据流,不是jsonapp.listen(config.port, function () {// 启动应用 console.log('server is run on ' + config.port);})config.js代理配置,这里目前只有host和port根据项目需求自己加上即可。var config = { host: 'localhost', port: 5002,}//这里面最重要的在于host/port其他可以根据项目需要加进去,module.exports = config;router.js //详细的代理和读取文件逻辑var express = require('express');var fs = require('fs');var proxyconfig = require('./proxy_config.js');// 引入代理逻辑var router = express.router();//注意执行/* * restful 路由 *///router.get('/token', proxy.token);// 下面文件执行逻辑在于当本地请求有符合proxy_config里面配置的正则,就会被代理到本地并且读取本地对 应json文件返回相应json数据for(var i=0; i
另外除开代理请求的内容,这个demo同样也是个react的完备小demo.采用了antd-mobie做组件开发,基于router页面层级的react-loadable执行按需加载,父子组件之间的数据传递和通信,简单地生命周期演示和组件state数据修改。
github地址:https://github.com/nextisleo/...
后面我会再争取把redux加进去,用一个小项目来对react进行完备的理解和开发。
相关推荐:
inotify.js2如何做出浏览器title的一些功能
如何通过vue.js使用font awesome实现小图标
响应式react native echarts组件的介绍
以上就是利用node本地代理请求json文件返回接口数据的详细内容。
