node -- hapi 学习

Posted 木石心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node -- hapi 学习相关的知识,希望对你有一定的参考价值。

node learning

学习node,是为了后续项目可以正常开展,现在写个项目,若不是连接后台,请求数据,一切都不叫着项目了。正好借助掘金小册,来推进学习

学习资料

以下皆是按照掘金小册加上自己扩展一步步走过来的

hapi 学习

使用 hapi 时,对应的一些插件,由于插件很多,目前暂时写着用到的一些吧

  • hapi-swagger 用来生成 接口文档, 地址 服务地址/documentation
  • env2 读取 .env 文件,可以用来配置文件
  • joi 数据结构校验
  • sequelize 用来连接数据库,请求数据,建表等都用到

报错

开发过程中,碰到的错误,加上自己一步步实践生成的

  • {"statusCode":400,"error":"Bad Request","message":"Invalid cookie value"}
    启动服务,浏览器输入地址就发生错误,处理方式
    • 清除 cookie, 清除当前地址栏下的 cookie可以解决
    • github Solution
  • 使用env2时,若是读取不到.env配置文件,可能是路径不对,看warning的信息,是否提示.env 没有找到,那就尝试修改,一定要看报错信息,基本都一目了然,避免盲目搜索查找
  • 连接mysql数据库
    由于使用Wampserver32无法有效连接到,不得已在ubuntu系统下安装mysql数据库。由于第一次使用ubuntu,因而记录下常用的命令,以及错误处理。
    远程连接数据库,这是大前提
    • ubuntu查看 ip

      ifconfig -a

      若是报 ifconfig commad

      sudo apt install net-tools
    • mysql 数据库安装等一系列命令

      安装 mysql

      sudo apt-get install mysql-server

      运行安全脚本

      sudo mysql_secure_installation

      测试Mysql

      systemctl status mysql.service

      启动 mysql

      1. sudo systemctl start mysql
      2. sudo service mysql start

      关闭 mysql

      sudo service mysql stop

      重启 mysql

      sudo service mysql restart
    • 错误处理
      • GUI工具连接数据库 10061
       修改bind-address=127.0.0.1 为 bind-address=0.0.0.0
       <!-- 不一定非要在my.ini文件夹下 -->
      • host 192... is not allowed to connect to this mysql server
         update user set host = '%' where user = 'root'
         // 可以将 `localhost` 换成 `%` 这点后期会踩无数坑
      • 1045
        alter user 'root'@'localhost' identified with mysql_native_password by '你的密码'
        <!-- 报错  -->
        [Error] 1819 密码设置的不符合要求 
      • 1819
        密码必须符合要求,而不是随便设置,很无语
      • 1396
      • 解决
      // 由于在前面将 `localhost` 换为 `%`,而我在后期修改中,却一直以为是 `[email protected]` 导致一直不成功,因而修改为
      ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123'
  • sequelize
    • connect ENOENT ‘3306‘
      一直以为连接数据库错误,各种排查,用SQL GUI工具发现可以连接数据库,然后打印时,发现
    ...
    username: ''root'' 
    ...  

    意识到是不是我多加了‘‘的缘故,去除就好了

    // .env文件 不用添加引号
    # MySQL 数据库链接配置
    MYSQL_USERNAME = root
    MYSQL_PASSWORD = 1991
    MYSQL_DB_NAME = hapi
    MYSQL_HOST = ip地址
    MYSQL_PORT = 3306
    • Incorrect string value: ‘xE5xBAx97xE9x93xBA...‘ for column ‘name‘ at row 1
      修改表,columns的字符集为 utf-8,这里需要多多注意,
      数据库 
      表
      columns
      都要看看是否是 utf-8
      不只是修改表的字符集,还需要修改 表的 columns的字符集

待续

继续前行吧,虽然都是很简单的操作,但是一步步来才是很爽的,不断排错,不断完善,很多东西确实相同,比如项目结构等等,后续再补充。

以上是关于node -- hapi 学习的主要内容,如果未能解决你的问题,请参考以下文章

Hapi.js —— Node.js 服务器端应用开发框架

基于hapi的Node.js后端开发

知名Node.js框架系列之:我看hapi(哈啤)

Express/Koa/Hapi

如何使用Backbone和Node.js / Hapi防止CORB错误?

cb 不是 hapi-auth-jwt2 中的函数 - Node.js