• Koa与Express的区别


    Koa与Express的区别

     

    框架介绍

    express框架是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,主要基于 Connect 中间件,并且自身封装了路由、视图处理等功能。

    koa是 Express 原班人马基于 ES6 新特性重新开发的框架,主要基于 co 中间件,框架自身不包含任何中间件,很多功能需要借助第三方中间件解决,但是由于其基于 ES6 generator 特性的异步流程控制,解决了 "callback hell" 和麻烦的错误处理问题。

    相同点

    两个框架都对http进行了封装。相关的api都差不多,同一批人所写。

    不同点

    express内置了许多中间件可供使用,而koa没有。

    express包含路由,视图渲染等特性,而koa只有http模块。

    express的中间件模型为线型,而koa的中间件模型为U型,也可称为洋葱模型构造中间件。

    express通过回调实现异步函数,在多个回调、多个中间件中写起来容易逻辑混乱。

    // express写法
    app.get('/test', function (req, res) {
        fs.readFile('/file1', function (err, data) {
            if (err) {
                res.status(500).send('read file1 error');
            }
            fs.readFile('/file2', function (err, data) {
                if (err) {
                    res.status(500).send('read file2 error');
                }
                res.type('text/plain');
                res.send(data);
            });
        });
    });
    


    koa通过generator 和 async/await 使用同步的写法来处理异步,明显好于 callback 和 promise。

    app.use(async (ctx, next) => {
        await next();
        var data = await doReadFile();
        ctx.response.type = 'text/plain';
        ctx.response.body = data;
    });
    

    总结

    Express
    优点:线性逻辑,通过中间件形式把业务逻辑细分、简化,一个请求进来经过一系列中间件处理后再响应给用户,清晰明了。
    缺点:基于 callback 组合业务逻辑,业务逻辑复杂时嵌套过多,异常捕获困难。


    Koa
    优点:首先,借助 co 和 generator,很好地解决了异步流程控制和异常捕获问题。其次,Koa 把 Express 中内置的 router、view 等功能都移除了,使得框架本身更轻量。
    缺点:社区相对较小。

  • 相关阅读:
    progresql
    postgresql
    postgresql
    postgresql 索引
    postgresql 视图
    postgresql 触发器
    postgresql异常快速定位
    postgresql数据库备份和恢复
    amgular $q用法
    安装fcitx
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/16839489.html
Copyright © 2020-2023  润新知