Results 88 issues of Night Sun

## 背景 最近在做PC端项目的时候,遇到一个bug,表现出来的症状如下: html部分代码如下: ```html 操作 用户群名称 创建时间 ``` 表现出来的症状就是Table中的文字溢出了,为什么会是这样呢? ## 原因 浏览器在解析页面上的文字的时候,默认会把一个单词、文字放到一行,如果一行展示不下,就另起一行展示,但是如果下一行在你设置的宽度内还是展示不下,就会出现上面溢出的情况。 于是CSS提供一些解决的办法,主要包括以下属性: - overflow - word-wrap - word-break - overflow-wrap 那么这些属性有什么区别?哪个才能真正解决上面的问题呢?本文就将重点介绍。 ## 基础 ### overflow 常用的一个属性,用来控制容器的溢出,常用的有2个属性: - overflow=hidden,当设置容器宽或者高时,如果内容超过容器,则被隐藏不会超过容器外;...

CSS/CSS3

有时候修改了 `.gitignore` 文件不生效,执行如下命令重新刷新下缓存就可以了。 ``` git rm -r --cached . git add . git commit -m 'update cached' ``` 另外要说的是,如果这个项目是一个团队多个人协作,那么需要每个人都执行这个命令,大家一起清理。不然你忽略了,别的人又上传了,还是不会生效。

经验分享
GIT

## 背景 我们服务端使用Nginx+Node(Express v4.15.2)部署,今天遇到Post参数过长时请求报错: > Runtime Error : 413,request entity too large 为什么会过长呢?因为有一个变态的需求,就是需要将图片读出来BASE64作为参数传递,所以... ## 解决 * 修改Nginx配置,一般路径如下: ``` vi /etc/nginx/conf.d/default.conf ``` 在路由接口上增加2个参数,如下: ``` location /api/ { client_max_body_size 0; proxy_buffering off;...

JS/NodeJS/ES6+

# 大前端的技术原理和变迁史 ![](https://i.imgur.com/QoWhym2.jpg) 本文适合前端新手入门,阅读人群最好是前端新手或者后台开发人员,因为我不敢保证对前端老司机有太多收获。 通过阅读本文,你将会大致了解前端这些年发生的事情,以及一些前端当前主流技术的简单原理介绍。所有涉及的内容,都是尽可能的让你捅破这层窗户纸,知道其大致的玩法。 ## 目录 1. **前端技术发展轨迹** - 角色架构发展史 - 前端技术发展史 - ECMAScript语法发展史 - Ajax技术发展史 2. **当前主流技术原理介绍** - SPA 单页面应用原理 - Node.js 服务器端JS运行原理 - SSR 服务器端渲染原理 - Vue...

一点思考
前端相关
经验分享

最近看到一篇文章,关于一个cookie的问题,今天跟大家简单分享下。 文章来源:[我遇過的最難的 Cookie 問題 ](https://github.com/aszx87410/blog/issues/17) ## 问题描述 1. 假如在 `a.xxx.com` 域名下写了一个 cookie,设置 `secret=true;domain=a.xxx.com`(**注意:** 一定要设置 `secret=true`) 2. 那么在 `b.xxx.com` 域名下写 `相同`名字的 cookie给 `domain=.xxx.com` 下是写不进去的!!!(**注意:** 是另一个二级域名给主域名下写) ## 诡异之处 由于你是在 `b.xxx.com` 这个域名下写cookie,所以你根本看不到 `a.xxx.com`下写的自身域下的...

经验分享

# 一、修改MySQL的配置文件 MySQL的配置文件 `my.cnf` ,所在位置一般在:`/etc/my.cnf`,如果不在这个目录下,可以搜索下:`whereis my.cnf` 修改每个对应项为 `utf8mb4` 编码: ```sql [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' character-set-client-handshake = false ```...

经验分享
MySQL

## 一、非对称加密 非对称加密就是需要公私钥的加密方式,这种加密安全系数相对较高。 实现步骤: ### 1、生成公私钥对 使用 `openssl` 命令生成,或者一些网站也可以生成。 ### 2、进行加密/解密 ```js const crypto = require('crypto'); //私钥加密 let encStr = crypto.privateEncrypt('PRIVATE KEY', Buffer.from('加密字符串', 'utf8')); //公钥解密 let decStr = crypto.publicDecrypt('PUBLIC KEY',...

JS/NodeJS/ES6+
经验分享

## 一、数据库基础知识 ### 1.1 什么是ORM? 对象-关系映射(Object-Relational Mapping,简称ORM),ORM框架主要的作用就是把数据库中的关系数据映射称为程序中的对象,也就是说你操作数据库不用直接写SQL,而是直接操作对象就可以。 Java中主流的ORM框架有:Hibernate、Mybatis、iBatis等。 Node中主流的ORM框架有:Sequelize、TypeORM、LoopBack、Mongoose、Waterline等。 ### 1.2 关系数据库都有哪些关系? 两个对象A和B之间只有哪些可能存在的关系? 1. `1:1` 1个A对应1个B(一夫一妻)。有2张表,A表中有一个外键关联B表; 2. `1:N` 1个A对应多个B(一夫多妻)。有2张表,B表中有一个外键关联A表; 3. `M:N` 1个A对应多个B,一个B也可能对应多个A(多夫多妻)。有3张表,C表中有2个外键,分别关联A表、B表; ### 1.3 关系数据库都有哪些查询? 1. 单表查询 ```sql select *...

JS/NodeJS/ES6+
经验分享

# js解惑-函数执行顺序 ## 背景 JS基础知识温习。 ## 函数解析原理 分3个阶段: 1. 准备(Hoisting) 1. 装载(填充数据) 1. 执行(逐行处理) ### 准备 本阶段就是书本中所说的Hoisting,包括:`形参变量创建`、`函数体内变量提升创建` 和 `函数申明创建`。 就是先把函数中所有的变量或者声明的函数名都先定义好,空间都开辟好。 **关于准备阶段的特别说明:** 1. 如果变量已经定义过,则不会重新定义(比如:形参中有个参数a,并且调用函数时传了值进来,这时候函数中还有个变量a,那么在这一阶段,函数中的变量a是不会重新定义,形参中的值也不会被覆盖。); ### 装载 这里装载填充的数据包括:`形参` 和 `申明的函数体`。 也许你要问了,为什么一般的变量只是拿到前面定义好,此时值是 `undefined`,填充数据需要等到执行那一行才进行,而...

JS/NodeJS/ES6+

本文主要从Git原理、常用命令、分支管理等方面进行简单介绍说明。 ## Git 和 Svn 的区别 1. Git是分布式的管理,而Svn不是 * Git的这个特性可以保证,每个使用Git的人员,本地都有一个独立的库跟远端相同。这样做的好处是,如果哪天断网了,或者在公司Clone的代码到家里了。这时候依然可以Add,Commit,依然可以查看版本记录。 1. Git的分支管理和Svn有很大区别 * Git的分支之间可以随意合并、切换,而Svn的分支就相当于是一个额外的目录。 * Git的分支使用要比Svn更加有优势,更加适合于快速开发、分块交付的工作。 1. Git数据存储方式和Svn大不一样 * 这主要表现在Git一个仓库目录下有一个.git隐藏目录,用于存储git的数据信息,而仓库内部的所有文件就没有了.git临时文件。这样做的好处是,你可以随意的拷贝/挪动,而不需要考虑隐藏文件占很大的磁盘。而Svn是每个目录下都有一个.svn目录,用于控制版本和数据信息。有时候挪动了整个目录,切换了Svn的地址,需要clean等操作,非常麻烦,而且占的体积非常大。 * 当然Git的这种存储有更大的作用,就是他实际存储了整个库到本地了,所以平时更新提交数据非常快。 * 更多数据存储,参考:[Git是如何存储对象的?](http://gitbook.liuhui998.com/7_1.html) ## Git 架构 ![](http://www.ruanyifeng.com/blogimg/asset/2015/bg2015120901.png) `注:此图片来自阮一峰博客` ##...

综合技能
GIT