当前位置: 首页 > 后端技术 > Node.js

小程序开发(二):使用hapi快速开发界面

时间:2023-04-03 15:51:09 Node.js

在上一篇文章中,我们介绍了数据采集相关的知识。本篇我们将对nodejs开发后台常用的库进行梳理,然后选择hapi进行restfulAPI的开发,以及定时任务和RPC的使用。nodejs主流框架介绍先来看看目前nodejs的主流框架:1.Express(43.4k)对于一个已经在使用nodejs的开发者来说,Express并不是什么新鲜事物,它提供了与原有API的对比nodejs的良好封装让开发者更容易使用nodejs。2.Meteor(41k)Meteor也是一个优秀的框架。记得官网上有一句话,“Shipmorewithlesscode”,不管是服务器数据库访问,业务逻辑实现,还是客户端,确实和这句话是一样的。演示,所有流程开箱即用。还有一点应该是“配置大于开发”的思想。很多东西可以直接通过配置实现,不需要太多的代码。我觉得这也是这个框架非常厉害的一点。3.Koa(25.8k)Koa由express原班人马开发。核心是ES6的生成器。使用生成器实现中间件的流程控制,复杂的回调在Koa框架中将不再见。框架本身很小,只封装了一些必要的功能,但是通过模块化很好的组织起来,让用户可以按照自己的想法实现一个扩展性很强的应用。4.Sails(20.4k)Sails底层使用express提供对http请求的处理,使用Socket.IO框架处理websocket请求。它还通过水线框架实现了ORM功能。你的应用程序可以在不进行大规模修改的前提下,从一个后端数据库切换到另一个后端数据库(也可以是NoSQL数据库)。5.egg(12.4k)egg是阿里巴巴的一个团队。基于Koa开发的框架,坚持【约定优于配置】,按照一套统一的约定开发应用。插件机制比较完善,很好用。之前写的微博词云的api是用egg写的,http://zz.mcust.cn,这个网站也是用egg写的。6.hapi(11k)Hapi在很多框架中算不上老手,但他在其中成功打造了自己的生态系统。致力于将节点HTTP服务器、路由和业务逻辑完全分离,更多地关注如何通过配置而不是代码尽可能地控制事物。这次选择Hapi的原因其实很简单,因为之前没有用过。每次用Hapi学东西,套路都差不多。我们先去官网看看。这里我们有很多重点,包括更新信息、引导说明、api文档、插件、版本号、最新更新时间、下载次数、源代码等信息。看更新时间和下载量,好像活跃的人还是很多的,这些数据也可以从某个维度对一个框架做出一些判断。然后进入教程,按照里面的教程进行实践,学习如何创建http服务,如何使用路由,获取url参数,cookies,日志,认证,视图等,下面就是正式进入界面开发的过程了用于创建项目的小程序。项目文件目录大致如下:models代表数据模型,我在里面定义了sequelize模型和数据结构;控制器包含大部分业务逻辑;routers定义路由,以及参数校验、路由处理方式等;common定义了一些公共方法,一些加密方法,uuid的生成方法等;config包含项目数据库配置和插件配置;log是放置日志文件的地方。然后我们这里也使用了很多插件和一些工具包来帮助我们更快的完成任务。其实这一块更重要的一点是热部署。在开发环境中,使用supervisor进行部署;而在生产环境中,我们使用pm2来部署。接下来我们看看如何在hapi中使用定时任务。我们先看看hapi里面有没有定时任务工具。我们在官网的插件中搜索“cron”,发现有,那么我们就直接使用hapi-cron。这个库会做。您需要先配置计划任务:然后将其注入服务。以上配置的意思是每天6:00、11:00、16:00、23:00返回请求/spider_articles。不熟悉cron表达式的同志可以稍微补充一下这方面的知识。然后在这个接口中发送了三个请求,就是我们上次部署的爬虫服务。这样我们就完成了通过定时任务来定时爬取数据的工作。其他接口都比较正常,只需要操作数据库即可,有的需要rpc,比较简单易懂,这里不再赘述。本节关于hapi的部分到此结束。NEXT在下一篇文章中,我们将介绍小程序的开发、mpvue、小程序原有组件的使用,以及小程序的一些重要配置。