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...') } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!