使用 ORM 可以减少数据库的操作细节,简化代码逻辑。同时,也会减少学习数据库操作更底层的东西,这个是坏事。可好事是方便,好用。
这里使用 Sequelize
https://sequelize.org/master/manual/model-basics.html
使用过任意一种语言的 ORM 的用户,这个上手起来还是蛮快的。
使用 ORM 可以减少数据库的操作细节,简化代码逻辑。同时,也会减少学习数据库操作更底层的东西,这个是坏事。可好事是方便,好用。
这里使用 Sequelize
https://sequelize.org/master/manual/model-basics.html
使用过任意一种语言的 ORM 的用户,这个上手起来还是蛮快的。
年轻的时候受点委屈,恨不得全世界的人都来安慰我。长大后却学会将苦难不动声色地自己消化。大概成长就是这样,越长大越沉默。
太阳不会因为你的失意,明天不再升起;月亮不会因为你的抱怨,今晚不再降落。蒙住自己的眼睛,不等于世界就漆黑一团;蒙住别人的眼睛,不等于光明就属于自己!
时光如水,从容依旧,从不因为任何人或事而稍做停歇,而我们,拼命的追逐着,不停的忙碌着。想来,这世间有许多人与我一样,踽踽独行于红尘巷陌。
人生,就是这样,很多时候,越是简单,越是快乐;越是在贫穷的时候,越能体现自己的真心,和自己的真情。
淡淡的日子淡然地过。生活如水,人生似茶,再好的茶放到水中一泡,时间久了,也就淡了。也许是棱角平了,或许是成熟稳重了,脚步越来越踏实,日子越来越平淡。
生活就像一杯白开水,你每天都在喝,不要羡慕别人喝的饮料有各种颜色,其实未必有你的白开水解渴,人生不是靠心情活着,而要靠心态去生活。调整心态看生活,处处都是阳光。
人生总有意想不到的风景,生命里的一份美好,往往在你最不经意的时刻来临。人就是大自然里的一颗尘埃,享受漂泊,享受远行,和一路的风雨阳光,飞扬和落定都是一种美丽的行走!
人生聚散离合,就是缘来缘尽, 生活是一件艺术品, 每个人都有自己认为最美的一笔, 每个人也都有认为不尽如人意的一笔, 人没有最好, 有德天地高, 人生有尺,做人有度。
人生的故事,充满了多少不可预料,但它却无比真实地发生着,让你惊诧,让你不知所措,让你笑,让你哭,心却无比的酸痛,却躲在角落深处不敢发声。
不要把自己活得像落难者一样,急着告诉所有人你的不幸。总有一天你会发现,酸甜苦辣要自己尝,漫漫人生要自己过,你要努力强大起来,然后独当一面。
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
在某些时候,为了数据的安全和保密性,需要对来回的数据进行加密处理。如果是 laravel 框架,中间件绝对是个好东西。
laravel 中间件包含一个完整的工作流,即请求前中间件(request)和请求后中间件(response)。在我们这次的场景中,刚好很好的用到了整个流程。
操作开始:
homestead 默认情况,在本机,是可以通过配置的域名访问虚拟机中的站点。可是,你的同事(其他)电脑是访问不了你的站点。既想你同事能访问,又不想用 ip。修改下配置,即可以实现。
这种需求,虽然不常见,但很有必要。因为你们自己没有公网服务器或不方便公网服务器用来测试。而刚好你的修改又需要特殊的测试,这个时候,这种需求就非常有用了。
# win10
ipconfig
# mac
ifconfig
# 找到自己的 ip 192.168.1.101(后边会用到)
# 假如你之前已经启动了虚拟机,先关掉比较好
exit
vagrant halt
不走 nginx 的代理,请求连接 websocket,总需要带上端口号。比如
new WebSocket("wss://www.xxx.com:9958")
,通过 nginx 的代理就可以实现这样的请求,比如new WebSocket("wss://www.xxx.com/wss")
vim www.xxx.com.conf
upstream websocket {
# wss 配置代理到 127.0.0.1:9958
server 127.0.0.1:9958;
}
server
{
listen 80;
server_name xxx.com www.xxx.com;
return 301 https://www.xxx.com$request_uri;
}
server
{
listen 443 ssl http2;
server_name xxx.com www.xxx.com;
if ($host = 'xxx.com' ){
return 301 https://www.xxx.com$request_uri;
}
ssl_certificate /service/nginx/conf/ssl/www.xxx.com.pem;
ssl_certificate_key /service/nginx/conf/ssl/www.xxx.com.key;
location /wss {
# 代理到上边的自定义的地址
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
…
重启, nginx。
其实,在 proxy_pass 这里,可以直接设置为 127.0.0.1:9958
还有请求的时候,域名后一定要带上 wss 。
Client does not support authentication protocol requested by server; conside 问题解决
Client does not support authentication protocol requested by server; conside 新旧版本密码算法不同引起的错误,只需要设置下密码方式为 mysql_native_password 就可。还是 navicat 做的好,新旧密码都支持。
mysql -u root -p
xxxx
use mysql;
show tables;
# 查看已经有的用户
select user, host from user;
# 重新设置下密码,并使之生效
# 之前是 'xxx'@'%' IDENTIFIED BY 'xxxxxx'
'xxx'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx'
flush privileges;
使用 redis 客户端是比较有必要的,这个时候就需要远程登录 redis 了。不过,redis 默认是无密码,只允许服务端登录。修改下配置,重启 redis 即可实现想要的目的。
修改 redis.conf 文件。
修改 # requirepass foobared
为你自己想要的密码 requirepass Safb0xafNabaf!fEfaWfs@#$a4afsdfw8ay
。
protected-mode
为 no
去掉 bind 或 设置为 bind 0.0.0.0
重启 redis 。
# 使用 conf 启动 redis
./redis-server redis.conf
# 登录客户端
./redis-cli
auth 密码
# 查看所有配置
config get *
# 查看单独一个的
config get bind
如果发现重启没啥鬼用,可以直接杀死进程,然后以 conf 启动。
ps -ef | grep redis
kill -9 xxxx
./redis-server redis.conf
还有 dump 文件需要注意,默认是 dump.rdb 文件。
当你的的 nginx 中设置 Content-Security-Policy,就有可能会遇到: script in the following Content Security Policy directive: "script-src * 'unsafe-inline'"
最快的解决办法,注释掉 Content-Security-Policy,并重启 nginx
vim xxx.conf
../../sbin/nginx -s reload