如何让用纯CSS来做头部固定,内容区域滑动的页面布局?

2021-09-18大约2分钟

网页的头部固定,内容区域有scrollbar的布局比较常见。这个布局的核心是要scrollbar只出现在内容所在的框里,整个页面的高度是和浏览器的高度一样的。 在这个例子里,比较重要的是要固定网页最外层的div的高度。我们用 来确保外层的高度,然后内层就可以依据这个高度来布局了。...

如何在Windows 10的本地nginx的localshot环境上启用HTTPS

2021-09-16大约17分钟

Nginx已经可以支持Windows了,这对于在Windows上开发的程序员来说,是个不错的消息。 nginx的各个版本的下载地址: http://nginx.org/en/download.html 如果我们想在本地的nginx上支持HTTPS,仅仅是为了开发和调试的需要,这时候肯定不会去想花钱去申请第三方的SSL证书,那该怎么做呢? 不难,按照下面这几步来: Install OpenSSL 这...

今天遇到TLS connection was non-properly terminated的错误

2021-09-13大约3分钟

今天在Ubuntu虚拟机上从Github上拉代码,但是频繁遇到这样一个错误: 从网上查解决办法,很多文章都指向proxy配置的问题,但是通过这个命令git config -l来查看,我的环境下并未给Git配置网络代理,因此不是proxy的原因。从错误原因上来看,这是一个和HTTPS连接相关的问题,所以想着是不是把SSL校验关了能不能解决问题。使用的是这个命令: 用了之后,目前看起来是好了。虽然这不...

如何在Mobx里实现一个异步的action?

2021-09-11大约5分钟

使用Mobx的时候,store里的状态的改变,默认情况下,必须经过action来操作,这可以让状态修改的操作在代码里面更加明确,也可以更好地组织代码。 对于普通同步的action,这个参考最简单的Mobx例子就可以了。但是对于异步的action,这点需要留意一下。 如果是用 ,那么 函数里传入的应该是一个action;如果是用 / , 之后的代码在运行时实际上仍旧是一个类似callback的一个...

Jest的VSCode插件

2021-09-10大约7分钟

VSCode的扩展里面有不少很好的Jest插件。在VSCode的扩展里面搜jest,就会看到安装下载最多的那些插件。比如: 这些插件里面,尤其是前两个值得考虑一用。 Jest 这个是Facebook官方的插件,功能最强大,有这些功能: 打开项目时,Jest会自动跑所有的测试。 内联显示单个失败/通过。 在问题检查器中显示失败的测试。 突出显示 函数旁边的错误。 为快照文件添加语法高亮。 失败快照的...

如何避免HTML里面的JSON数据导致XSS安全问题?

2021-09-01大约12分钟

在HTML里面,在 节点里面输出页面上需要用到的状态数据是个很常见、标准的用法,比如: 这样,在网页里面运行的JS就可以很容易读取这些数据,然后为UI加上更动态的功能。 但是,这样安全吗? 之前我以为是的,但是后来因为在页面上加了这样一段示例代码,整个页面就乱了。 页面变成了这样: 很明显,是页面的HTML结构被破坏了,并且是JSON里面的数据导致的。 把页面上有问题的JSON检查了一下,发现浏览...

如何用JavaScript里校验字符串?

2021-08-31大约3分钟

为了保证程序能正常运行,及安全运行,我们通常都需要记得要校验用户的输入。在JavaScript里, validator 这个库可以很容易做好这件事情。 在Node.js里,可以这么写: 在ES6里,可以这么写: 这种方式可以方便webpack等打包工具使用tree-shaking的功能,来减少打包出来的JS文件的体积。 在浏览器里,可以这么写: 详细内容,可以参考文档: https://www.n...

如何用JavaScript爬取一个网页?

2021-08-30大约6分钟

爬取一个网页是一个网络爬虫的一个最基本的操作,那么如何用JavaScript来实现这个呢? 简单来说,爬取一个网页,需要以下三步: 1. 根据URL下载一个网页 我们使用 axios 库来下载我们的网页。Axios是一个非常简单易用、符合标准,又支持Promise的一个HTTP客户端的库,因此用它来开始我们的示例非常容易。 在上面的例子里,我们实现了一个 函数,这个函数会下载通过参数 传入的网址。...

如何在JavaScript里面mock时区?

2021-08-30大约8分钟

在做JavaScript测试的时候,如果我们的代码里有用到日期,那么可能在某些情况下会导致测试不能稳定跑。比如:对包含日期显示的UI做了Snapshot测试,但是测试代码可能会在本地、远程服务器等环境跑,时区却不一样。 这种情况下,我们就希望执行测试的时候,代码获取的是一个固定的时区,而不是运行电脑设置的时区。我找了一些资料,发现有一些办法: 1. 使用环境变量来设置Node.js代码的时区。 可...

如何在Node.js里发送电子邮件?

2021-08-30大约2分钟

发送电子邮件是个软件系统里很常用的一个功能,虽然目前短信通知也很流行,但是邮件仍然是一个不可缺少的部分。 在Node.js里发送电子邮件,也很简单,我们只要用 Nodemailer 这个库就能实现了。 我们只需要把上面 里需要替换的部分用配置里的值,然后 里的发件人( )、收件人( )、主题( )等内容替换成自己的内容就可以了。...