• MOCK DATA -- node路由


    前后端分离,有时候后端接口给的不是很及时,这就需要前端自己mock data,

    本文讲的简单的node模拟数据 api路由跳转

    首先有个data.js(json)文件,

    路由:

    配置在dev-server.js

    require('./check-versions')()
    var config = require('../config')
    if (!process.env.NODE_ENV) process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
    var path = require('path')
    var express = require('express')
    var webpack = require('webpack')
    var opn = require('opn')
    var proxyMiddleware = require('http-proxy-middleware')
    var webpackConfig = require('./webpack.dev.conf')
    
    // default port where dev server listens for incoming traffic
    var port = process.env.PORT || config.dev.port
    // Define HTTP proxies to your custom API backend
    // https://github.com/chimurai/http-proxy-middleware
    var proxyTable = config.dev.proxyTable
    
    var app = express()
    //router Start
    var appData = require('../data.json');//获取data数据
    var seller = appData.seller; //获取详细数据
    var goods = appData.goods;  //获取详细数据
    var ratings = appData.ratings;  //获取详细数据
    
    var apiRouter = express.Router();  //定义一个路由
    
    apiRouter.get('/seller',function(req,res){//.get方法第一个参数 地址,第二个是个函数,传入requrice responce,responce返回json对象
      res.json({
        errno: 0,    //错误代码
        data: seller //数据
      });
    });
    apiRouter.get('/goods',function(req,res){
      res.json({
        errno: 0,
        data: goods
      });
    });
    apiRouter.get('/ratings',function(req,res){
      res.json({
        errno: 0,
        data: ratings
      });
    });
    
    app.use('/api',apiRouter);//加载路由  访问路径:根目录/api/seller  根目录/api/goods  根目录/api/ratings
    //router End
    var compiler = webpack(webpackConfig) var devMiddleware = require('webpack-dev-middleware')(compiler, { publicPath: webpackConfig.output.publicPath, stats: { colors: true, chunks: false } }) var hotMiddleware = require('webpack-hot-middleware')(compiler) // force page reload when html-webpack-plugin template changes compiler.plugin('compilation', function (compilation) { compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { hotMiddleware.publish({ action: 'reload' }) cb() }) }) // proxy api requests Object.keys(proxyTable).forEach(function (context) { var options = proxyTable[context] if (typeof options === 'string') { options = { target: options } } app.use(proxyMiddleware(context, options)) }) // handle fallback for HTML5 history API app.use(require('connect-history-api-fallback')()) // serve webpack bundle output app.use(devMiddleware) // enable hot-reload and state-preserving // compilation error display app.use(hotMiddleware) // serve pure static assets var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) app.use(staticPath, express.static('./static')) module.exports = app.listen(port, function (err) { if (err) { console.log(err) return } var uri = 'http://localhost:' + port console.log('Listening at ' + uri + ' ') // when env is testing, don't need open it if (process.env.NODE_ENV !== 'testing') { opn(uri) } })
    
    
    //获取详细数据
  • 相关阅读:
    docker (2) 私有仓库的建立
    golang (5) http 请求分析
    java (1)
    golang (5) ---工程管理
    Mac使用一些经验
    数组的遍历
    进制
    数组的初始化
    数组基本概念
    博客开始更新第一天
  • 原文地址:https://www.cnblogs.com/juexin/p/6185869.html
Copyright © 2020-2023  润新知