位置: 编程技术 - 正文

Node.js的Koa框架上手及MySQL操作指南(nodejsapi框架)

编辑:rootadmin

推荐整理分享Node.js的Koa框架上手及MySQL操作指南(nodejsapi框架),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs的koa框架优点,node.js orm框架,node 框架,node 框架,node.js koa,nodejs的koa框架优点,nodejsapi框架,nodejs的koa框架,内容如对您有帮助,希望把文章链接给更多的朋友!

由 Express 原班人马打造的 koa,致力于成为一个更小、更健壮、更富有表现力的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升常用错误处理效率。Koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。

安装koakoa 依赖支持 generator 的 Node 环境,也就是说,node的版本要在 0..9 或者更高,否则将无法执行。

用npm:

或者,选择安装在全局:

Example这是一个koa的简单例子:

与普通的 function 不同,generator functions 以 function* 声明。以这种关键词声明的函数支持 yield。在后面会讲到 yield 的用法和意义。

执行koa执行koa时需要在 —-harmony 模式下运行,为了方便可以将 node 设置为默认启动 harmony 模式的别名:

这样在执行相关js的时候就可以直接使用了。

Cascading这是一个比较抽象的概念。Koa 中间件以一种非常传统的方式级联起来,也就是这里所谓的Cascading。

Node.js的Koa框架上手及MySQL操作指南(nodejsapi框架)

在以往的 Node 开发中,频繁使用回调不太便于展示复杂的代码逻辑,在 Koa 中,我们可以写出真正具有表现力的中间件。与 Connect 实现中间件的方法相对比,Koa 的做法不是简单的将控制权依次移交给一个又一个的中间件直到程序结束,Koa 执行代码的方式有点像回形针,用户请求通过中间件,遇到 yield next 关键字时,会被传递到下一个符合请求的路由(downstream),在 yield next 捕获不到下一个中间件时,逆序返回继续执行代码(upstream)。

下边这个例子展现了使用这一特殊方法书写的 Hello World 范例:一开始,用户的请求通过 x-response-time 中间件和 logging 中间件,这两个中间件记录了一些请求细节,然后「穿过」 response 中间件一次,最终结束请求,返回 「Hello World」。

当程序运行到 yield next 时,代码流会暂停执行这个中间件的剩余代码,转而切换到下一个被定义的中间件执行代码,这样切换控制权的方式,被称为 downstream,当没有下一个中间件执行 downstream 的时候,代码将会逆序执行。

在上方的范例代码中,中间件以此被执行的顺序已经在注释中标记出来。你也可以自己尝试运行一下这个范例,并打印记录下各个环节的输出与耗时。

上方的伪代码中标注了中间件的执行顺序,看起来是不是有点像 ruby 执行代码块(block)时 yield 的表现了?也许这能帮助你更好的理解 koa 运作的方式。

koa访问mysql数据库操作实现方法一(co-mysql)mysql库是以回调形式实现的,而koa中间件要求Promise形式,经过搜索,发现了co-mysql和mysql-co,这两个库的思路差不多,mysql-co封装度更高,并使用速度更快的mysql2,而co-mysql更简单,只是将mysql.query封装成Promise形式。下面是基于co-mysql的写法

实现方法二(promisify-node)找到promisify-node库,可以将库整体转化为Promise形式,示例代码如下:

实现方法三(thunkify、thunkify-wrap)

使用thunkify也能够完成封装,thunkify-wrap是一个增强版的thunkify,不过看说明,这种方法在未来的发展中可能会被淘汰,大概的使用如下:

实现方法四(直接方法)直接改造原来express下的代码为Promise形式,参考了co-mysql,并仔细学习了Promise相关知识,完成了已有代码的改造,代码及说明如下:dbHelper.js

代码请参考这个项目中的数据库操作部分,项目处于持续开发中,数据库示例部分取自该项目。

浅析Nodejs npm常用命令 npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管

在Mac OS上安装使用Node.js的项目自动化构建工具Gulp 安装node.js首先需要安装node.js,通常情况下,只需要到Node.js官网下载安装包安装就可以了。不过我可耻的失败了,弹出了如下错误:于是我换成了brew大

Node.js Streams文件读写操作详解 Node.js天生异步和事件驱动,非常适合处理I/O相关的任务。如果你在处理应用中I/O相关的操作,你可以利用Node.js中的流(stream)。因此,我们先具体看看流

标签: nodejsapi框架

本文链接地址:https://www.jiuchutong.com/biancheng/370748.html 转载请保留说明!

上一篇:Node.js环境下编写爬虫爬取维基百科内容的实例分享(node.js编译)

下一篇:浅析Nodejs npm常用命令(nodejs oom)

  • 个体工商户能开多少钱的普票
  • 非商业性旅游服务
  • 未实际处置资产损失税前扣除金额的分录?
  • 一般纳税人劳务派遣
  • 员工午餐费要交个税吗
  • 会计和税法折旧年限不同如何计算终结期现金净流量
  • 异地施工缴税增值税交多少
  • 应交税金进项税的会计分录
  • 哪些费用可以计入待摊费用
  • 小微企业企业所得税怎么征收2023
  • 付现金可以开专用发票吗
  • 会计对帐是银行账户吗
  • 印花税计提和缴纳凭证
  • 外购商品对外赠送增值税怎么算
  • 验资报告办理一般需要多久时间
  • 集体福利的增值税怎么算
  • 银行定期存款的利息是每个月给你吗
  • 公司公章丢失登报后又找到了
  • 一般纳税人减免性质代码怎么填写
  • 个人所得税跨年度能退吗
  • 房屋的押金费用怎么算
  • php防止订单重复处理
  • smarty模板判断数组为空的方法
  • linux中怎么安装GUI
  • 池塘里的水结冰了
  • vue实现pdf下载
  • 犹他州现神秘物体
  • 阿普拉萨
  • 非居民纳税人可以做汇算清缴吗
  • 新办公司实收资本怎么查
  • 增值税发票认证在哪里
  • 明细分类账户定义
  • 面试官:一千万是真的吗
  • 德国楚格峰一日游攻略
  • 捐款怎么处理
  • 【原创】基于JavaWeb的医院预约挂号系统(医院挂号管理系统毕业设计)
  • php创建多级目录的方法
  • lvm命令详解
  • 小三用英语怎么写?
  • 资本化的后续支出
  • 有哪些员工福利
  • 设备购买与租赁的分析中,购买优于租赁的条件是
  • 买汽车计算公式
  • 资金托管账户的钱能查到吗
  • 个人所得税专项附加扣除2023
  • 增值税主表和附表
  • sqlserver2008r2评估期已过
  • 应纳税的物品有哪些
  • 减免进项税的分录怎么做
  • 短期借款的实际利率与现金折扣的关系
  • 预提费用为什么是负债
  • 公司试驾车怎么开票
  • 应收账款坏账计入资产减值损失还是信用减值损失
  • 员工意外险的费用怎么算
  • 企业注销固定资产清理税务处理
  • 做内账需要什么资料
  • 会计账本怎么记账
  • 企业经营规模小怎么办
  • sql解析原理
  • window系统怎么用
  • win10预览版选哪个
  • 苹果MAC电脑怎么玩圣安地列斯
  • windows 8
  • linux挂载文件步骤
  • 怎么查看opengl版本
  • threejs中文文档pdf
  • dom编程艺术这本书好吗
  • 使用express
  • Android Adapter 源码笔记(3)
  • js判断pc还是移动
  • JavaScript Try...Catch 声明的 使用方法
  • 税务文书档案保管期限
  • 网上申报纳税小程序下载
  • 员工离职了个人所得税年度汇算应申报未申报怎么处理
  • 一般纳税人销售收入分录
  • 加强税务工作
  • 建筑行业增值税税收优惠政策
  • 襄城是现在的哪个城市
  • 农夫山泉水质量合格吗
  • 汕头汕尾什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设