<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fd214333890的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fd214333890</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fd214333890]]></copyright><item><title><![CDATA[Cannot spawn .husky/pre-commit: No such file or directory]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/120007434</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/120007434</guid><author>fd214333890</author><pubDate>Mon, 30 Aug 2021 23:11:40 +0800</pubDate><description><![CDATA[一、背景
在使用husky为项目添加git hook做提交验证时，出现了这样的问题。检查了一圈，文件好好的就在那，最开始还是怀疑是不兼容Windows的原因，后面找了一圈终于找到原因了。
二、解决办法
废话先不说，先把解决办法给出来：
检查.husky/pre-commit文件的换行标识符，将CRLF换成LF。即可顺利解决该问题。
三、详细内容
使用的husky的版本是7.0.1，准备在pre-commit钩子处设置一个eslint检查，操作步骤如下：
3.1 安装依赖

安装husky和eslint

n]]></description><category></category></item><item><title><![CDATA[[译]使用Docker安装Elasticsearch]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/119274231</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/119274231</guid><author>fd214333890</author><pubDate>Sat, 31 Jul 2021 16:11:34 +0800</pubDate><description><![CDATA[使用Docker安装Elasticsearch
Elasticsearch也可以以docker镜像的形式使用。该镜像以Centos:8做为基础镜像。
在www.docker.elastic.co上有完整的已发布的docker镜像和标签。相关的源文件在Github上。
这些镜像在Elastic许可（Elastic License）下是免费使用的。他们包含了开源的和免费的商业化的特性还有访问付费商业功能。
拉取镜像
获取 Elasticsearch for Docker 就像针对 Elastic Docker ]]></description><category></category></item><item><title><![CDATA[redux学习笔记（二）——react-redux基础知识]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/118915086</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/118915086</guid><author>fd214333890</author><pubDate>Thu, 22 Jul 2021 00:10:47 +0800</pubDate><description><![CDATA[一、前言
上一节——redux基础知识中介绍了redux的基本使用。
但是在实际react项目中使用redux的话，一般不会使用原生redux，而是会再加上react-redux一起使用。
redux与react-redux并没有什么关系，redux可以在任意地方使用，可以在react项目中使用，也可以在vue项目中使用，甚至可以在jQuery项目中使用。而react-redux是redux官方做的用于更好地与react进行配合。
这一节，将会在前一节redux的基础上，使用react-redux来让我们的]]></description><category></category></item><item><title><![CDATA[redux学习笔记（一）——redux基础知识]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/118856732</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/118856732</guid><author>fd214333890</author><pubDate>Sun, 18 Jul 2021 15:58:14 +0800</pubDate><description><![CDATA[一、前言
在使用react等前端MVVM框架的时候，比较好的开发模式是组件化开发——将具有相似功能的元素抽象成一个组件，这样就可以在不同页面中引用该组件，减少了代码量，同时也缩减了开发成本。
引入组件化开发的影响就是，在开发过程中需要面对纷繁复杂的组件之间、页面之间的通信问题，虽然react有提供props概念，允许父组件向子组件传参，但是面对更多“子组件向父组件传参”、“子组件向兄弟组件传参”等问题时就显得有些无力。
当然，只使用props也不是不能实现奇奇怪怪的传参需求，只是实现起来比较费劲且实现方式不]]></description><category></category></item><item><title><![CDATA[React17添加less支持]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/117677338</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/117677338</guid><author>fd214333890</author><pubDate>Tue, 08 Jun 2021 00:42:53 +0800</pubDate><description><![CDATA[一、简介
react脚手架工具中只集成了css和sass，对于想用less的朋友来说不是很方便，需要自己手动配置。
这里就用一个新的项目记录一下自己手动添加less支持的过程。
二、操作步骤
2.1 新建一个react引用
按照官方文档的入门，新建一个react应用，并进入应用目录
# 新建应用my-app
npx create-react-app my-app

# 进入项目文件
cd my-app

# 安装依赖
npm i

2.2 解包react应用
使用命令将react应用进行解包，脚手架创建的应]]></description><category></category></item><item><title><![CDATA[Node.js实现前后端数据传输加密解密]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/117537626</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/117537626</guid><author>fd214333890</author><pubDate>Fri, 04 Jun 2021 00:47:37 +0800</pubDate><description><![CDATA[一、简介
在前后端通信过程中，一些敏感信息，特别是用户的账号密码，需要加密进行传输，如何选择加密方式也是一门学问，这里倒也不过多偏题了。
通常来说B/S架构中用的比较多的传输数据加密是RSA加密，核心思想就是公钥加密，私钥解密。
公钥，可以理解为可以公开的钥匙，服务器将公钥发给客户端，客户端用公钥对数据进行加密传输，服务器收到客户端传来的密文，再用自己的配对的私钥进行解密，即可获得原始的数据。
大致流程如下图所示：

二、示例
2.1 生成公私钥对
Node中有一个核心模块——crypto提供各种加密、解密]]></description><category></category></item><item><title><![CDATA[hapi.js入门系列（二）——路由]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/116724455</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/116724455</guid><author>fd214333890</author><pubDate>Thu, 13 May 2021 00:01:31 +0800</pubDate><description><![CDATA[目录一、简介1.1 请求方法1.2 匹配多个请求方法1.3 动态路由二、路由的创建2.1 创建单个路由2.2 创建多个路由
一、简介
1.1 请求方法
hapi路由支持以下常用方法（包括，但不限于）：

GET
POST
PUT
PATCH
DELETE
OPTIONS

官方文档介绍说，除了HEAD方法不支持以外，其他的http请求方法都是支持的。
1.2 匹配多个请求方法
当需要匹配多个请求方法时，可以将数组作为method的值。例如：
server.route({
  method: ['GET', ]]></description><category></category></item><item><title><![CDATA[log4js为日志等级分别创建日志文件]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/116403603</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/116403603</guid><author>fd214333890</author><pubDate>Tue, 04 May 2021 19:38:04 +0800</pubDate><description><![CDATA[目录一、简介二、本文导读三、示例3.1 最基础的写法3.2 添加logLevelFilter3.2.1 设置日志等级过滤器3.2.2 设置过滤器对应的追加器3.2.3 在分类中设置对应的过滤器四、测试五、结语
一、简介
log4js是一款用于node开发的日志记录库，其使用范围相当之广，在Express，Koa系列，Hapi等框架时，相信很多人都用过该库。其由于自身的高自由度，高可扩展性深受广大Node开发者所喜欢。
在实际开发过程中，每个人会根据自己具体情况来进行日志文件的划分，简单的可以是单文件日志记录]]></description><category></category></item><item><title><![CDATA[Ubuntu中ufw命令的使用]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/115410168</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/115410168</guid><author>fd214333890</author><pubDate>Sat, 03 Apr 2021 01:10:33 +0800</pubDate><description><![CDATA[目录简介一、ufw服务1.1 检查ufw服务状态1.2 开启ufw服务1.3 关闭ufw服务1.4 禁用ufw服务1.5 启用ufw服务二、ufw相关命令2.1 检查ufw状态2.2 开启ufw2.3 关闭ufw2.4 修改默认策略2.5 拦截/允许特定IP2.6 拦截/允许特定IP访问特定端口2.7 拦截/允许特定IP、端口以及协议2.8 带ID号的防火墙策略2.9 删除策略三、注意事项3.1 策略优先级
简介
现在Ubuntu18.04自带的有ufw。在某些时候可能已经在服务器上部署了自己的服务，但是发]]></description><category></category></item><item><title><![CDATA[Node项目添加测试用例、测试覆盖率]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/115288802</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/115288802</guid><author>fd214333890</author><pubDate>Sun, 28 Mar 2021 22:24:27 +0800</pubDate><description><![CDATA[简介
文章使用相关环境、模块版本如下：




名称
版本




Node.js
12.15.0


mocha
8.3.2


nyc
15.1.0


一、demo程序
创建一个demo文件夹，在该文件夹下创建文件index.js，编写如下内容：
/**
* @description 加法函数
* @param {Number} a - 数1
* @param {Number} b - 数2
* @returns
*/
function add(a, b) {
  return a + b;
}

m]]></description><category></category></item><item><title><![CDATA[hapi.js入门系列（一）——一个简单的Hello World程序]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/114005524</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/114005524</guid><author>fd214333890</author><pubDate>Tue, 23 Feb 2021 23:51:00 +0800</pubDate><description><![CDATA[简介
文章所使用各技术、框架版本一览




名称
版本




Node.js
12.15.0


hapi.js
20.1.0


一、安装hapi
直接使用npm安装即可，当然也可以使用cnpm等其他包安装工具。
npm i @hapi/hapi --save

[注] 在以往版本的hapi，是直接使用 npm i hapi ，如果此处使用该命令，会默认安装18版本的hapi，要想安装20版本的hapi需要使用 npm i @hapi/hapi 命令。
二、创建一个hello world程序
文件内容]]></description><category></category></item><item><title><![CDATA[Node.js+Socket.io实现广播功能]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/112913868</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/112913868</guid><author>fd214333890</author><pubDate>Thu, 21 Jan 2021 00:55:36 +0800</pubDate><description><![CDATA[目录一、简介二、一个基础的连接例子三、普通广播四、Namespace+广播五、room+广播六、小结
一、简介
用socket.io+Node实现一个房间内广播的功能，原本以为API会有类似的功能，虽然目前来看会有比较相近的功能，但是效果依然不尽人意，故自己琢磨了一下该方面的实现过程。
当前使用的包的信息如下：




包/软件
版本
说明




Node
v12.15.0



socket.io
v3.1.0
socket服务器


socket.io-client
v3.1.0
socket客户端
]]></description><category></category></item><item><title><![CDATA[基于docker-compose搭建redis集群]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/111007824</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/111007824</guid><author>fd214333890</author><pubDate>Thu, 10 Dec 2020 23:19:47 +0800</pubDate><description><![CDATA[目录一、简介二、部署步骤2.1 集群配置2.2 编写redis.conf2.3 编写docker-compose.yml文件2.4 启动容器2.5 查看容器启动状态2.6 开启集群三、测试3.1 查看节点属性3.2 插入一个值
一、简介
部署环境：




组件
版本
备注




docker
19.03.6
build 369ce74a3c


docker-compose
1.27.4
build 40524192


ubuntu
18.04
server版 X86_64


redis
6.0.4]]></description><category></category></item><item><title><![CDATA[Bootstrap-table使用教程]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/81002308</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/81002308</guid><author>fd214333890</author><pubDate>Mon, 06 Aug 2018 22:35:12 +0800</pubDate><description><![CDATA[前言

我们先从Bootstrap-table（以下简称BS-table）的基础使用开始讲起，写法来说，BS-table主要分为两种写法，一种是HTML写法，一种是JS写法。这能这里用&quot;HTML写法&quot;和&quot;JS写法&quot;不太专业准确，我就先这么描述着吧，一会代码放上来就能明白我说的什么意思了。本文也主要将这两种写法的大部分（并不敢说我什么都会）使用方法告知大家。

【版本使用】

jQuery@3.3....]]></description><category></category></item><item><title><![CDATA[Bootstrap中模态框（modal）出现时页面抖动情况的解决方法]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/80274160</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/80274160</guid><author>fd214333890</author><pubDate>Thu, 10 May 2018 22:37:06 +0800</pubDate><description><![CDATA[首先，还是说一下这个抖动的情况是怎么的。当你打开模态框时，页面的内容会缩小一下，感觉就是padding-left:5px;突然变成了padding-left:20px;这样会给人一种页面“抖”了一下的感觉。一般出现页面“抖”一下的解决方法主要针对具体情况，这里可能涉及的不全，希望大家见谅。本次使用的各种插件的版本为：jQuery@3.1.1Bootstrap@3.3.0情况一：页面没有滚动条tal...]]></description><category></category></item><item><title><![CDATA[CEPH分布式集群搭建]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/79958356</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/79958356</guid><author>fd214333890</author><pubDate>Mon, 16 Apr 2018 13:05:23 +0800</pubDate><description><![CDATA[1 概述1.2 集群概述    Ceph集群是一个集Monitors[1]、OSDs[2]、MDs[3]三种节点组成的一种集群。这里我所做的Ceph集群的搭建步骤主要以Monitor+OSDs为核心来搭建该集群，若掌握了这两个搭建集群的方法，理解其搭建流程，再在此基础上添加MDs就会变得很简单。总的来说，搭建集群难点在于集群前期的搭建以及让这个集群达到active（激活）状态，之后再添加OSD或是...]]></description><category></category></item><item><title><![CDATA[Node.js开发错误——Error: callback function required]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/79783549</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/79783549</guid><author>fd214333890</author><pubDate>Sun, 01 Apr 2018 23:59:52 +0800</pubDate><description><![CDATA[之前在参照《Node与Express开发》中代码进行编写时出现如下问题。throw new Error('callback function required');
Error: callback function required怎么看代码逻辑也没有出现问题，百度后也没看到对应的解决方法（他们出现问题的地方和我不一样）最后好好想了想，callback function required，大概意思...]]></description><category></category></item><item><title><![CDATA[HTML5读取input[type=file]中的图片]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/71250488</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/71250488</guid><author>fd214333890</author><pubDate>Sat, 06 May 2017 13:13:40 +0800</pubDate><description><![CDATA[概述
  在我们做用户注册的时候经常会设计到用户头像之类的上传，这时我们会用到一个标签，但是我们该怎样获取标签中选取的图片呢？
  这里我们使用HTML5中的FileReader接口来实现这样的操作。
demo
  我用如下代码来讲述该怎样实现这样的操作：
HTML代码：

    
    
    获取图片



    
  首先，肯定会有一个已经，form写不写action和m]]></description><category></category></item><item><title><![CDATA[node.js+mysql实现批量存储]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/71117816</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/71117816</guid><author>fd214333890</author><pubDate>Wed, 03 May 2017 13:35:36 +0800</pubDate><description><![CDATA[一、概述
    之前在做node.js+mysql的项目时，需要实现一整个表的存储和修改，需要用到批量存储，但是貌似npm 中的mysql并不具备相关功能，只能自己靠着自己对批量存储的理解来手动写一个批量存储的代码。
  二、思路
  2.1 思路概述
    我对批量存储的理解就是能够不止一条的执行sql语句（虽然说可能不是很准确，但是从结果逆推过来，差不多就是这个意思了）。首先，我们]]></description><category></category></item><item><title><![CDATA[设置背景图片自动适应屏幕]]></title><link>https://blog.youkuaiyun.com/fd214333890/article/details/70252309</link><guid>https://blog.youkuaiyun.com/fd214333890/article/details/70252309</guid><author>fd214333890</author><pubDate>Thu, 20 Apr 2017 00:45:57 +0800</pubDate><description><![CDATA[基于chrome和引用了bootstrap的CSS样式之后，设置背景图片自动适应屏幕的方法。]]></description><category></category></item></channel></rss>