• 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. }

  • 相关阅读:
    一文看懂分布式存储架构
    运算符
    第一篇 硬件篇1[学习-来自 正点原子]
    可删除背包(计数类)=>转移数组进行展开:ABC321F
    Python实验二
    MyBatis: 配置文件解析流程
    (一)数据结构绪论
    优化jenkins on kubernetes构建性能慢问题
    solidity入门
    重磅!谷歌宣布 DeepMind 与 Google Brain 合并,奋力追赶 OpenAI
  • 原文地址:https://blog.csdn.net/z_2532040197/article/details/126091151