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` 换成 `%` 这点后期会踩无数坑
      alter user 'root'@'localhost' identified with mysql_native_password by '你的密码'
      <!-- 报错 -->
      [Error] 1819 密码设置的不符合要求
      密码必须符合要求,而不是随便设置,很无语
      • 1396
      // 由于在前面将 `localhost` 换为 `%`,而我在后期修改中,却一直以为是 `root@localhost` 导致一直不成功,因而修改为
      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: '\xE5\xBA\x97\xE9\x93\xBA...' for column 'name' at row 1

    修改表,columns的字符集为 utf-8,这里需要多多注意,
    数据库

    columns
    都要看看是否是 utf-8

    不只是修改表的字符集,还需要修改 表的 columns的字符集

待续

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

node -- hapi 学习的更多相关文章

  1. NODE.JS学习的常见误区及四大名著

    NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...

  2. Node.js学习系列总索引

    Node.js学习系列也积累了一些了,建个总索引方便相互交流学习,后面会持续更新^_^! 尽量写些和实战相关的,不讲太多大道理... Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- ...

  3. 【入门必备】最佳的 Node.js 学习教程和资料书籍

    Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...

  4. node.js学习(1)

    新建便笺 3 node.js学习(1) 1)安装 http://nodejs.org/download/下载. 2)编写一个案例 var http=require("http"); ...

  5. 我的Node.js学习历程

    学习一门技术,每个人都有每个人的方法.我的方法很简单,做项目. 基本概念 在搭建一个node网站之前,还是要掌握一些基本的概念的,这里列举一下,具体的内容大家自己到网上去查: npm bower ex ...

  6. Node.js学习之TCP/IP数据通讯

    Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...

  7. Node.js学习起步

    Node.js学习: 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱 ...

  8. 一点感悟:《Node.js学习笔记》star数突破1000+

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

  9. Node.js学习看这里:基础、进阶、文章

    Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的.可扩展的网络应用. Node.js采用事件 ...

随机推荐

  1. dom4j解析xml报"文档中根元素后面的标记格式必须正确"

    今天,在写个批量启动报盘机的自动化应用,为了简化起见,将配置信息存储在xml中,格式如下: <?xml version="1.0" encoding="UTF-8& ...

  2. HTML 和 JavaScript 实现飘花的效果

    HTML 和 JavaScript 实现飘花的效果,也不算花,就是有悬浮物飘下来,和下雪似的. 也是不需要图片和其他的 js 脚本做辅助,其实已经全写在 HTML 文件中了. <html> ...

  3. C++设计模式 之 “数据结构” 模式:Composite、Iterator、Chain of Resposibility

    "数据结构"模式 常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用.这时候,将这些特定数据结构封装在内部,在外部提供统一的接口, ...

  4. 20145213《网络对抗》逆向及Bof基础

    实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShe ...

  5. java使用itex读取pdf,并搜索关键字,为其盖章

    导读:近期要做一个根据关键字定位pdf的盖章位置的相关需求,其中关键字可配置多个(包含pdf文档中可能不存在的关键字),当页面显示盖章完成时,打开pdf显示已经损坏. 排查后发现,当itext搜索的关 ...

  6. mac下的一些操作

    mac 下修改Hosts文件 : http://www.cnblogs.com/zhangqs008/p/3773623.html mac下装Tomcat服务器: 在苹果系统安装Tomcat:首先下载 ...

  7. Educational Codeforces Round 57 (Rated for Div. 2)

    我好菜啊. A - Find Divisible 好像没什么可说的. #include<cstdio> #include<cstring> #include<algori ...

  8. 事务(Transaction)

    1.演示转账的功能:(1)创建一张表示学生表表 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50), ac ...

  9. 【TCP/IP详解 卷一:协议】第十八章 TCP连接 的建立与终止 (2)其余内容

    18.5 TCP的半关闭 牢记 TCP 是 全双工 的. 半关闭:TCP提供了连接的一端 在结束了它的发送后 还能接收来自另外一端数据的能力.但是只有很少的应用程序利用它. 为了实现这个特性,编程接口 ...

  10. S4 对象系统

    上一节中,我们介绍了 S3 系统.与大多数其他编程语言的面向对象系统不同,与那些类被定义为固定结构,且随着程序编译有确定的方法分派的系统相比,S3 系统显得非常不严谨.当我们定义一个 S3 类时,几乎 ...