# 2021-03 日常记录
2021-03-12 周五
# Git Cant push or pull encountered end of file
在云服务器上,突然无法拉取 github 仓库上的代码。报错 fatal: unable to access xxx Encountered end of file
执行 GIT_CURL_VERBOSE=1 git push
发现根本连不上 github 了,应该是上次把与服务器的 dns 改成默认值导致的。
2021-03-16 周二
# CommonJS 和 ES Module 的区别
CommonJS 和 ES Module 都是解决下列问题的:
- 解决变量污染问题,每个文件都是独立的作用域,所以不存在变量污染
- 解决代码维护问题,一个文件里代码非常清晰
- 解决文件依赖问题,一个文件里可以清楚的看到依赖了那些其它文件
区别在于:
CommonJS:
- CommonJS 可以动态加载语句,代码发生在运行时
- CommonJS 混合导出,可以导出单个值,也可以导出引用对象,导出引用对象时之前的导出将被覆盖了
- CommonJS 导出值是拷贝,可以修改导出的值,在代码出错时,不好排查,可能引起变量污染
ES Module:
- ES Module 是静态的,不可以动态加载语句,只能声明在该文件的最顶部,代码发生在编译时
- ES Module 混合导出,单个导出,默认导出,完全互不影响
- ES Module 导出是引用值之前都存在映射关系,并且值都是可读的,不能修改
2021-03-17 周三
# fatal: unable to access xx: TCP connection reset by peer
云服务器上,又无法拉取 github 仓库上的代码了。报错 fatal: unable to access 'https://github.com/xxx/': TCP connection reset by peer
。
# 说法一:有代理
env | grep -i proxy
查看代理,如果有,使用命令移除 unset https_proxy
。
git config --global http.proxy
查看代理,如果有,使用命令移除 git config --global --unset http.proxy
。
# 说法二:把 URL 模式从 HTTPS 改为 SSH (可行)
1.github 先配置 SSH Key
- 设置 git 的 user name 和 email
- 生成 SSH Key,有的话执行
cat id_rsa.pub
来拷贝 - github UserSetting 里面添加 SSH Key
git remote -v
#> origin git@github.com:USERNAME/REPOSITORY.git (fetch)
#> origin git@github.com:USERNAME/REPOSITORY.git (push)
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
# Verify new remote URL
$ git remote -v
#> origin git@github.com:USERNAME/REPOSITORY.git (fetch)
#> origin git@github.com:USERNAME/REPOSITORY.git (push)
2
3
4
5
6
7
8
2021-03-19
# 为什么0.1+0.2不等于0.3
JavaScript 使用 Number 类型表示数字(整数和浮点数),遵循 IEEE 754 (opens new window) 标准,通过64位来表示一个数字。
数字在内存中的表示方式
图片文字说明
第0位:符号位,0表示正数,1表示负数(s) 第1位到第11位:储存指数部分(e) 第12位到第63位:储存小数部分,即有效数字(f),52位
运算的时候,先转二进制,然后对阶运算。由于位数的限制,可能会存在精度损失,所以会得出不等于。 精度损失可能出现在进制转化和对阶运算过程中。
2021-03-22 周一
# mac 上 Chrome 非 https 无法打开摄像头
地址栏输入 chrome://flags/
,搜索 unsafely
。选择 enabled ,并输入要授信的域名/ip。
2021-03-24 周三
# koa 报错 413 Payload Too Large 请求体过大
koa 项目里面使用了 koa-bodyparser
接受数据,默认对请求体的大小限制了:
- formLimit: 表格限制默认 56kb
- jsonLimit:json传输默认限制 1M
- textLimit:文本传输默认限制 1M
增加参数:
const Koa = require('koa')
const bodyParser = require('koa-bodyparser')
const app = new Koa()
app.use(bodyParser({
'formLimit':'2mb',
'jsonLimit':'2mb',
'textLimit':'2mb',
}))
2
3
4
5
6
7
8
9
2021/3/25 周四
# linux 查看 nginx 安装目录
在启动了 nginx 的情况下 ps aux|grep nginx
# Apache 代理转发到 https
需要配置
SSLProxyEngine on
ProxyPass /api https://exapmle.com/api
ProxyPassReverse /api https://exapmle.com/api
2
3
2021/3/26 周五
# iframe 操作父页面报错
报错 Uncaught DOMException: Blocked a frame with origin "https://xx.com" from accessing a cross-origin frame.
方案一: 修改调用的方式,使用 postMessage (opens new window)
方案二:
Response Headers 设置不是这个问题,与这个设置无关x-frame-options: SAMEORIGIN
方案三: 设置
document.domain = 'expamle.com'
,把两个站设置成一样的
← 日常记录 2021-04 日常记录 →