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
查看 ipifconfig -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文件夹下 -->
update user set host = '%' where user = 'root' // 可以将 `localhost` 换成 `%` 这点后期会踩无数坑
alter user 'root'@'localhost' identified with mysql_native_password by '你的密码' <!-- 报错 --> [Error] 1819 密码设置的不符合要求
1819
密码必须符合要求,而不是随便设置,很无语
1396
// 由于在前面将 `localhost` 换为 `%`,而我在后期修改中,却一直以为是 `root@localhost` 导致一直不成功,因而修改为 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123'
- GUI工具连接数据库
-
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
不只是修改表的字符集,还需要修改 表的修改表,columns的字符集为 utf-8,这里需要多多注意, 数据库 表 columns 都要看看是否是 utf-8
columns
的字符集
待续
继续前行吧,虽然都是很简单的操作,但是一步步来才是很爽的,不断排错,不断完善,很多东西确实相同,比如项目结构等等,后续再补充。