Haoqin Zhang

Results 22 issues of Haoqin Zhang

# 记一次 oneinstack 配置服务器 ## 引言 自己的服务器因为换过好多次,每次搭建又格外费时,在网上闲逛时发现了 [oneinstack](https://oneinstack.com/auto/) 这个超好用的工具 ,可以傻瓜式「一键」安装。 ## node 安装 oneinstack 不支持 node 环境的安装,在这里 ```shell yum install -y nodejs ``` ## 配置防火墙 如果此时你输入公网 ip, 发现无法访问页面, 那可能是端口未开启。 CentOS...

服务器
oneinstack

​ 最近因为工作和学校论文上的事情始终没有让自己能静下心来去好好写点总结,但感觉其实时间还是有的,而且写东西确实能让我身心愉快。感觉脱离了这纷杂的尘世,好似乘一片竹榻,游荡在山水之间。以后还是希望自己能坚持下来,多总结总结,多写一些对自己有用的东西。 下面直接切入正题,自己「引入」组件一般是两种方式, 与 ` renderElement`, 这里为什么要加引号呢,是因为 ` renderElement `可能不算引入,它本来就在其要调用的组件的内部,这里并不是想记录这两种方式,大家可以稍微往下看一下。 #### 外部导入 ```ts import * as React from "react" const Input = props => { const { inputValue, setInputValue }...

react

## 引言 最近一直在准备面试,被问到了解 XSS 时答出不了解还是很惭愧的,作为前端开发人员,安全这方面是必须要非常重视的,因此决定拿出了一段时间来重点了解一下关于前端的安全问题,在这里以 XSS 和 CSRF 为主 ## XSS XSS「Cross-site script」因为与 CSS 简写重合所以改为 XSS 其原理是向网站中插入恶意的 HTML 代码。当其他用户浏览该网站的时候,该段 HTML 代码会自动执行,从而达到攻击的目的。如盗取用户的 Cookie,页面重定向,破坏页面结构 **举个栗子**:chestnut: 网站的评论系统没有过滤 XSS 攻击,当有用户添加评论为 ```js while(true) { alert("1");...

安全

# Mention > 记录使用 hooks 实现 mention 组件的历程 💻 ## State ```tsx measuring // 测量 measureLocation // 需要定位的位置 measureText // 用于搜索的本文 measurePrefix // 呼出 List 的符号 例如 '@' isESC //...

### 顺序上传文件 其实就是顺序执行异步操作。在这里先抛出一个小问题,用**递归方法计算链表的长度**。链表是最简单的动态数据结构,也是非常适用于递归解法的一种数据结构。计算其长度也应该是基本技能了,在这里直接贴出代码 ```js function calNodeListLength(head) { // 首先要对临界值进行判断 if (head===null) { return 0 } return 1 + calNodeListLength(head.next) } ``` 那顺着这个思路去想,我们就有了一种顺序上传文件的实现方法:上传 n 个文件,等到一个头文件上传完毕后调用函数再处理 n-1 个文件,然后等到 n-1文件中的头文件传递完毕后再去处理剩下 n-2 个文件.... ```js...

面试

## 基于 mpvue 的圆形进度条组件 ##### 默认状态 ![default](https://user-images.githubusercontent.com/17595913/45858984-8f309200-bd92-11e8-95a4-d99f8ce037ea.jpg) ##### 圆形带缺口 ![gap](https://user-images.githubusercontent.com/17595913/45858985-8f309200-bd92-11e8-9fe7-97262daf6655.jpg) ### 引言 自己本身是一个小程序小白,前几天刚开始学习。碰到一个需求是要实现多个圆形带缺口的进度条,在网上没有找到相关插件后决定自己编写一个,如果能帮到需要的人那真是太好了, 下面会介绍一下自己的实现过程,如果只关心如何用的话可以传送到下面的页面 [mini-circleprogress 源码](https://github.com/MLuminary/subentry/tree/master/mini-circleProgress) ### 过程 一开始的思路是用 svg, 自己编写完毕后,发现小程序不支持直接引入 svg, 因此最终实现是使用的小程序自带的 canvas 如何画圆已经有大佬讲解过了,我就不重复劳动了,下面是链接 https://segmentfault.com/a/1190000013219501 在此说明一下此组件实现的功能和一些注意点 ### 完全响应式 ####...

## 根据 url 获取图标及 title ### 功能描述 最近在做一个小项目有一个类似添加书签的功能,用户点击添加后,弹出输入模块,用户只需要将需要收录的链接添加进去,便可以自动生成带有此网站图标和此网站标题的卡片 ### 设置 icon 想要知道如何获取肯定要知道网站的 icon 是如何设置的,设置 icon 的方式据我了解的有两种 - 一般都是在 `html` 代码的 `head` 标签中设置一个 `link` 标签,将其 `rel` 属性设置为 "icon" 或者 "shortcut icon",...

node
爬虫

## 获取百度搜索提示结果 ### 引言 最近自己想做的项目需要一个搜索框,并想实现如下搜索提示的功能 ![pg1](https://user-images.githubusercontent.com/17595913/44629868-ec017e00-a987-11e8-8f94-7dba31f1667c.jpg) 本来觉得查查 network 随便抓取一下就可以获得到数据,但事情却不是这么简单 ### 过程 在百度随便输入字符,查看 network,找到此时请求的链接 ![pg2](https://user-images.githubusercontent.com/17595913/44629869-ec017e00-a987-11e8-8b1a-1805d616c481.png) 会发现使用 get 方式传了四个值,其中 `p` 和 `cb` 都是可以固定的,剩下的就是关键字 `wd` 和此时的时间戳 `t`,自己因为本身是 vue 的项目,就用 `axios` 对此进行请求,结果报错为 **跨域** 并且...

## 引言 这段时间终于感觉自己步入正轨,也相对稳定了下来。便想搞点事情,想做一个网站,包含自己一些平时想要的工具和一些自己想关注的咨询。然后发现自己的服务器竟然一点都不绿,所以就花了一些时间绿化了自己的服务器。 ## nginx 上 https ### 申请证书 我自己用的是腾讯云服务器,因此证书就去腾讯云官方网站去申请,当然不是腾讯云的话还有几个比较权威的颁发证书的网站,例如 [StartSSL](https://www.startcomca.com),当然如果你的服务器是 Linux 的话,你也可以用默认安装的 OpenSSL 但是 OpenSSL 的方法我没有试过,具体可以参考 https://www.cnblogs.com/chjbbs/p/5748369.html 腾讯云的申请证书还是比较简单,打开下述链接 https://console.cloud.tencent.com/ssl 点击申请证书,然后根据其提示一步步填写,审核成功后下载证书,下载证书后里面的文件如下 ![pg1](https://user-images.githubusercontent.com/17595913/42444712-5737b5c8-83a3-11e8-8578-d9c5c7e7820a.png) 打开 Nginx,里面包含着一个证书文件和一个 .key 文件。 ### 配置 nginx 打开服务器中的...

服务器