node_mvc路由设计

1.入口index.js

let http = require('http')
let service = require('./service/index.js')

// 1.执行router/index.js导入路由对象
let router = require('./router/index.js')
// 2.使用use方法配置路由 // 路由设计不对,use方法没用
router.use('/home', router.home)
router.use('/guoji', router.guoji)
router.use('/guonei', router.guonei)
router.use('/sports', router.sports)

let server = http.createServer((req, res) => {
  // 3.发送请求
  router(req, res)
}).listen(8888)

2.router/index.js 路由设计理念

let url = require('url')
let querystring = require('querystring')
let request = require('request')
let fs = require('fs')
// 导出路由方法,与路由设计分离
let routerMethods = require('./routerMethods.js')

//3.1设计路由理念
module.exports = (req, res) => {
  let urlObj = url.parse(req.url)
  let methods = module.exports[urlObj.pathname.substr(1)]
  if (methods) methods(req, res)
  else {
    //静态路由资源托管
    fs.readFile(__dirname + '/../src'+urlObj.pathname , (err, data) => {
    if (err){return err}
    res.end(data) }) } }
//es6语法 对象合并 //2.2设计实现的分离 Object.assign(module.exports, routerMethods) //2.1路由配置 // 路由设计不对 use方法没用,把自己的方法重新赋值给自己 module.exports.use = (url, callback) => { let urlProp = url.substr(1) module.exports[urlProp] = callback }

3.router/routerMethods.js路由方法实现

//实现路由方法

module.exports = {
  home () {
    console.log('home...')
  },
  guonei () {
    console.log('guonei...')
  },
  guoji () {
    console.log('guoji...')
  },
  sports () {
    console.log('sports...')
  }
}

 

posted @ 2020-03-05 22:31  前端之旅  阅读(230)  评论(0)    收藏  举报