• node.js --- MVC


    MVC即 model 、controller、view;

            M: Model      数据模型层
            V: View       视图层
            C: Controller 逻辑控制层

    MVC模式将model、view、controller分离;
    使用mvc分层是系统更加灵活,扩展性更强。让程序更加直观、复用性更强、可维护性更强。

    model 负责数据访问;
    controller 负责消息处理;
    view 负责视图呈现;

    简易封装一个MVC的方法:

            index.js文件:

    1. var http=require("http")
    2. var router =require("./router.js")
    3. var controller =require("./controller.js")
    4. var app=http.createServer(router)
    5. //静态资源托管
    6. router.static(__dirname+"/src")
    7. //注册网址
    8. router.get("/ajax1",controller.ajax1)
    9. router.get("/ajax2",controller.ajax2)
    10. router.get("/ajax3",controller.fn)
    11. app.listen(8081)

            router.js文件:

    1. var fs = require("fs")
    2. var url = require("url")
    3. var querysting = require("querystring")
    4. var mime = require("mime")
    5. let urls = {}
    6. let router = function (req, res) {
    7. //这个函数每次用户访问时运行
    8. let pathname = url.parse(req.url).pathname
    9. fs.readFile(router.basepath + pathname, (err, data) => {
    10. if (!err) {
    11. res.setHeader("content-Type", mime.getType(pathname))
    12. res.end(data)
    13. } else {
    14. if (!urls[pathname]) {
    15. res.end("404 not found")
    16. } else {
    17. urls[pathname](req, res)
    18. }
    19. }
    20. })
    21. }
    22. router.static = function (path) {
    23. this.basepath = path
    24. }
    25. router.get = function (url, cb) {
    26. urls[url] = cb
    27. }
    28. router.basepath = __dirname + "/src"
    29. module.exports = router;

            controller.js文件:

    1. module.exports = {
    2. ajax1(req, res) {
    3. // 业务代码
    4. },
    5. ajax2() {
    6. // 业务代码
    7. },
    8. fn() {
    9. // 业务代码
    10. }
    11. }

  • 相关阅读:
    SAP MTS/ATO/MTO/ETO专题之十:ETO模式 Q+空模式 未估价库存 策略自定义
    Unity16 UI
    商城的TPS与并发用户数是如何换算的?
    Simhash算法及python实现
    Hadoop生态系统官网、下载地址、文档
    numpy的基础操作
    关于推动可追溯代码来源的计划
    Linux安装Vue环境
    【数字IC前端笔试真题(2022年)】艾为——数字ic设计工程师
    【目标检测】|yolov6 结构代码分析
  • 原文地址:https://blog.csdn.net/z_2532040197/article/details/126091151