自己用hapi开发一个具有天气、发布心情、图片生成的小程序

286 阅读4分钟
                                            01
    多少开发者,最初的梦想就是自己独立开发一个应用于是乎,我大概第99次拥有这个想法,在3年后的今天决定去实现。
想制作一个具有简单功能的小程序,需要学习很多技能,因为一直是做前端,且在公司参与过很多模型、接口、组件的设计和评审。
于是越发想自己努力开发前后端,完成自己的第一个简单的应用开发。

现在记录下来开发过程中的流水账,并分享整个过程的点点滴滴,只到完成它。

第一件事:准备了解要完成它必须要掌握的每个环节的技术,或者说实现方式。并且他们能够串成一条线。 因为自己做前端出身,javascript必须是掌握的,结合项目中的经验和自己的理解先从自己角度整理下,就像做一盘菜,都需要买什么料,在哪里买,怎么加工,以及最后怎么消灭掉。。。
        所有需要的材料:
        1.数据库
        2.后端框架
        3.前端框架
        4.接口实现方式(未知)
        5.身份验证
        6.模型设计
        7.功能设计
        8.功能细节实现
        9.服务器
        10.域名
        11.ssl证书
        12.公众账号
        13.时间……………………
        14.耐心……………………
        15.无尽的学习

    我大概列了这么多块,看了一下,我所真正独立能够完成的寥寥无几,五个手指头不到。
最重要要解决的就是在后端方面,选择后端语言和框架,最好框架生态是天生具备:路由、接口、文档、以及自己所不知道各种必须特性。

    经过了解,结合自己已有的基础,就选择node生态,那么剩下的就是选择一个框架,自己喜欢比较新的框架,在比较新的框架里能感受到各种巧妙的解决很多交互中的难题。 于是在掘金买了一篇《hapi小程序后端……》教程,大概花了一杯饮料钱。 买之前看了一下目录,从基本概念介绍到,表设计,接口实现,身份认证,微信支付……部署,监控 虽然不知道好不好但是流程基本全了。

    没了以后,每天下班到家19:30,打开我的小本本,按照教程一章一章,一字一字照着代码教程联系,理解,实现效果。很快体会到了hapi以及各种生态插件的好用之处,轻松的完成了mysql数据库连接,表创建,测试数据迁移,接口文档的实现。可是,最杯具的事情发生了。!!


    每天20点下班,项目各种加班,上班干各种破产品和设计造成的重复修复工作,折磨得要死,下班几乎只能发呆或者放空。。。

就这样过了大概3个月



     准确的说是三个月后的今天又开始要做这件事,照着教程继续往下搞。
     可是大家不知道遇到没有遇到过,大神的教程写的简单的和1一样,可尼玛的某一个关键时刻就是无法实现效果,各种群找各种老师都问了,感觉像是中了咒在我这里就是无法实现某一节的效果。
     抠脚抠鼻端详了许久,许久以后觉得这尼玛肯定也是个坑钱货,得,自己好好看官方文档,google翻译走起,可是你知道不是每一个问题都是可以通过这样的努力解决的,代码里的坑可达地心,深不可测。 大概又浪费了两周时间。
直到某天中午,吃完午饭,下载了一个最新的《魔童哪吒》正在上映的新片一边看,一边再试尝试排查这每一个逗号和等号。已经开始考虑玄学了是不是我这台电脑的问题(包括家里的那台)最后迫于无奈把官方demo干脆下载下来,顺利的npm install 跑起来。官方效果完美,心想那就简单了,他在我这台电脑可以,就不是我电脑的问题。于是和我的代码逻辑和实现一步一步排查,最后发现唯一与他不同的是我在一处逻辑判断中加入了很多新的逻辑,那么bingo 就是这里了,我开始加入 console.log() 每一行去排查,终于发现了该死的 undefined!undefined! undefined!

哈哈,
哈
第一次发现undefined 还这么开心。找到问题所在的地方已经无比欢喜。

不出我所料,半个效果优化逻辑,测试效果 一步走通。
hapi的 jwt 身份认证终于走通了。

前端获取 认证签名

验证身份


下一次实现基本功能:
    1.用户登录,新用户自动创建用户,绑定openid存入数据库user表,并签发登录票据。
    2.识别老用户获取登录票据。