自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

亮子介

全干工程师的小本子

原创 Node.js 格式化输出 JSON 到文件

JSON.stringify 函数竟然带有格式化!其第三个参数表示缩进的空格数,例如: var fs = require('fs'); fs.writeFile('test.json', JSON.stringify({ a:1, b:2, c:3 }, ...

2020-05-19 06:06:39 25 0

原创 优雅实现:如果记录存在,就更新记录,否则插入一条新记录

通常,我们用两条语句来实现这个功能: UPDATE table SET field='C', field2='Z' WHERE id=3; INSERT INTO table (id, field, field2) SELECT 3, ...

2020-05-16 05:21:31 23 0

原创 用户点击了“返回”按钮,Javascript 如何强制刷新页面?

用户在点击“返回”按钮后,返回页面的内容已经发生了变化,由于浏览器缓存的作用,用户往往看到的是旧有的内容。如果内容已经发生了变化,怎么强制刷新页面内容? 答案是使用 pageshow 事件: window.addEventListener( "pageshow", functi...

2020-03-11 10:13:39 138 0

原创 ripgrep 常见用法,很有用哦

你还在用 grep 来进行全文搜索吗?尝试更高级的 ripgrep 吧。下面列出 ripgrep 常用的参数与用法: rg -l 仅仅显示匹配的文件名。 rg -i 大小写不敏感。 rg -v 反向匹配,即显示不匹配的结果。 rg NEEDLE README.md ...

2020-03-09 23:12:42 278 0

原创 Node.js 中联合使用两个日志包:Morgan, Winston

代码: var logger = new winston.Logger({ transports: [ new winston.transports.File({ level: 'info', filena...

2020-03-08 18:08:57 112 0

原创 纯 Javascript 插入节点:在末尾插入、在开始插入

在末尾插入节点: // Grab an element var el = document.getElementById('thingy'), // Make a new div elChild = document.createElement('di...

2020-03-08 13:00:42 41 0

原创 强制 vim 将文件视为 HTML 格式

有时候 vim 好像分辨不了格式了,这种情况在混合代码的时候容易出现。那么,我们能不能强制 vim 将某类文件视同是 html 格式来进行高亮处理?答案是可以的,做法就是在你的 .vimrc 中增加下面一句命令: au BufReadPost *.ezt set syntax=html ...

2020-03-07 01:10:13 35 0

原创 PostgreSQL 如何写条件:值在数组中、值不在数组中

值在数组中: SELECT COUNT(*) FROM "messages" WHERE 3 = ANY (recipient_ids) 值不在数组中 SELECT COUNT(*) FROM "messages" WHERE NOT (3 = ANY (...

2020-03-06 20:42:05 242 0

原创 PostgreSQL INSERT 如何获得新插入元素的 id?

如果表已经设定 id 为自增变量,插入操作如何获得新插入记录的 id 值? 答案是使用 RETURNING 子句: INSERT .... RETURNING id; 获取 id: const id = res.rows[0].id ...

2020-02-29 21:40:33 201 0

原创 Javascript 粘贴到剪切板

例子: <p> <button class="js-textareacopybtn" style="vertical-align:top;">Copy Textarea</button> <textarea ...

2020-02-29 13:49:05 89 0

原创 Javascript 获取元素索引值

ES6 可以这样写: const index = [...el.parentElement.children].indexOf(el) https://stackoverflow.com/a/46328506/3054511

2020-02-29 11:14:21 51 0

原创 psql 竖式输出查询结果

psql 默认是水平输出查询结果,一条记录占一行。而且和 mysql 不同的是,它还不换行,如果一行内容太多,后面的就看不见了。 如果想切换城竖式显示,只需要使用 \x 命令: # \x Expanded display is on. # \x Expanded display is off. ...

2020-02-28 12:39:09 92 0

原创 Postgresql 改变用户密码

修改密码: ALTER USER user_name WITH PASSWORD 'new_password'; 为了避免在命令历史中泄露了密码,可以使用下面的命令来删除命令历史: rm ~/.psql_history

2020-02-27 06:37:06 49 0

原创 Node.js 重定向 URL

直接上代码: response.writeHead(301, {Location: 'http://example.com'} ); response.end();

2020-02-25 00:10:46 62 0

原创 为何大部分的英语群都变成了沉默群?

之前加过一个群,里面的外教很热情,气氛也很好。然后我印象特别深刻的就是有一天外教突然说——有人想找我上课的话可以和我预定。 Ever since that, 死寂降临。。。 为什么明明乱七八糟的贵得要死的网课有人去上,这样的反而没人。这是因为需求匹配问题。愿意花钱找老师的学生,找来找去,只看到那些...

2020-02-05 15:34:19 85 1

原创 如何转换电子书 .epub 为文本文件?

在 Ubuntu 下安装 Calibre: sudo apt update sudo apt install calibre Calibre 比较大,安装要花点时间。安装完成后,就可以使用下面的命令来转换电子书: ebook-convert input.epub output.txt ...

2020-02-01 00:22:50 96 0

原创 flexbox 与 grid 比较

两者各有优势,下面是一个简单比较。 Flexbox 是一维布局,grid 是二维布局。 如果你关注内容在屏幕上的位置,那么 grid 适合你。 如果你的重点在于内容流,那么使用 flexbox 更合适。 浏览器支持上面 flexbox 更好一些。 https://webdesi...

2020-01-29 23:58:18 61 0

原创 Ubuntu 上如何安装 PostgreSQL?

直接使用 apt 来安装: sudo apt update sudo apt install postgresql postgresql-contrib 安装完成后,使用默认用户 postgres 连接默认数据库 postgres。 切换 Linux 用户为 postgres sudo -i...

2020-01-29 08:51:41 62 0

原创 Ubuntu 上安装 pgcli

pgcli 是 PostgreSQL 的命令行管理工具,它不但完全兼容 psql 的命令,还增加了很多方便的命令。最大的特点是交互性,它让命令行操作数据库的效率大大提升。记不住命令?记不住字段名称?pgcli都会给你提示。 在 Ubuntu 下,使用下面的命令来安装 pgcli: sudo apt...

2020-01-29 08:46:29 143 0

原创 前端框架比比看:bootstrap, bulma, foundation, material-design-lite, materialize-css, semantic-ui

Bootstrap 的用户量仍然遥遥领先,但我已经在尝试 Bulma 和 Material.

2020-01-28 19:38:59 297 0

原创 使用 yarn 安装 marked

Marked 是一款优秀的 Markdown 转换工具,默认是将 Markdown 文档转换为 HTML 格式。你可以通过 yarn 包管理工具来安装 marked。 首先创建安装目录,然后安装: mkdir marked cd marked yarn add marked 为了让 marked...

2020-01-28 18:00:15 45 0

原创 怎样在 Ubuntu 18.04 上安装 yarn,以及 yarn 常用命令有哪些?

Node 的包依赖管理工具,从速度和版本控制方面来看,yarn 比 npm 有优势,因此建议用 yarn 来代替 npm。 在 Ubuntu 系统上要安装 yarn,首先增加源: curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo ap...

2020-01-27 17:00:40 509 0

原创 怎样在 Vue 中使用 axios ?

首先安装: npm install --save axios 也可以使用 yarn 安装。注意,yarn 的安装命令是 add,不是 install: yarn add axios 然后在 main.js 中添加下面的代码,就可以全局使用 axios: import axios from &#...

2020-01-27 14:49:43 22 0

原创 PostgreSQL 如何删除外键限制?

首先找出数据库表的外键名称: \d [tablename] .... "table_name_id_fkey" FOREIGN KEY (id) REFERENCES other_table(id) .... 然后使用下面的命令删除外键: ALTER TABLE [table...

2020-01-27 12:54:51 717 0

原创 命令行(CLI)的几个基本术语辨析及翻译:parameter, argument, option, flag

参数(parameter) 传递给命令的内容都可以称之为参数(parameters),具体又可以细分为: 必选参数(argument)。如果一个命令缺少了 argument,命令就会报错,所以 argument 可以称之为必选参数。例如下面的命令种,click 就是必选参数: pip inst...

2020-01-27 08:57:26 95 0

原创 如何把 Postgres 的操作结果写入文件?

psql 和 pgcli 提供了将操作结果输入到文件的功能,只需一个命令: \o out.txt 这样,所有的操作命令和结果将保存在 ~/out.txt 文件中。 如果要想恢复,仍然想再终端上看操作结果,只需执行同样的命令,这次不用带参数: \o ...

2020-01-26 19:23:59 60 0

原创 Postgres 创建自增变量作为 id

代码: CREATE TABLE fruits( id SERIAL PRIMARY KEY, name VARCHAR NOT NULL ); 数据类型 serial 的取值范围: 1 ~ 2,147,483,647 https://www.postgresqltutorial....

2020-01-26 16:59:18 65 0

原创 vue url 地址中的 # 是什么?

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。 如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 HTML5 中的 history.pushState API 来...

2020-01-26 09:29:53 346 0

原创 怎样将 vue 网站部署到域名子路径下?

如果要把 vue 部署到子路径: https://example.com/vue 要在 vue.config.js 中配置 publicPath。如果你的项目中没有 vue.config.js 文件,你就在项目的根目录下创建这个文件,然后在文件中写入如下内容: module.exports = ...

2020-01-25 17:38:03 51 0

原创 vue 学习笔记(1)

声明式渲染。 数据在 JS 代码中,通过 Vue,这些数据与 DOM 绑定,这就是说,你在 JS 中改变了数据,DOM 就发生改变。 let app = new Vue({ el: '#app', data: { message: 'Hello wor...

2020-01-25 17:15:17 50 0

原创 vue-cli 4, @vue/cli, yarn 常用命令

创建项目: vue create my-project 运行开发版本: cd my-project yarn serve 编译生产版本: yarn build 什么是 Vue CLI 服务? The Vue CLI Service is a run-time dependency (@vu...

2020-01-25 10:29:10 98 0

原创 安装@vue/cli,yarn 安装不成功,npm 安装成功

官方文档说,下面两个命令,使用任何一个都可以来安装 @vue/cli npm install -g @vue/cli # OR yarn global add @vue/cli 首先使用 yarn,提示已经安装成功,但是,vue 命令根本没有(我的系统是 Ubuntu 18.04)。 在网上找了...

2020-01-25 09:05:38 88 0

原创 mycli 如何自动提示表名字、栏名字?

在登录的时候,指明需要连接的数据库: -D [database name]

2020-01-22 15:31:08 40 0

原创 JavaScript 闭包的例子

例子一: var element = document.getElementById('button'); element.addEventListener("click", (function() { // init the count to 0 ...

2020-01-18 10:09:22 17 0

原创 Javascript 跨页面存储变量的四种方法

一、Query string 二、Web storage localStorage sessionStorage 三、cookie 四、window.name https://stackoverflow.com/a/30070207/3054511

2020-01-17 01:38:39 120 0

原创 Gimp 让背景变得透明

第一步:选择要变透明的区域。 第二步:在菜单中选择: Layer – Transparency – Add Alpha Channel 第三步:清除: Edit – Clear

2020-01-13 17:47:16 201 0

原创 怎样让 Mac 的终端不再透明?

打开 Mac 电脑上的终端(Terminal),如果不是全屏,终端有点透明,导致文本看不清楚。怎么样才能让终端不再透明? 答案是 Preferences -> Background -> Color & Effects -> Opacity 设置为 100% 吐槽一下:...

2020-01-11 16:10:10 217 0

原创 composer 提示进程被 killed 解决办法 - 增加 Swap 空间

首先看看 Ubuntu 上有没有设置 swap: sudo swapon --show 如果啥都没有显示,说明没有设置 swap. 创建 swap 文件,并激活: sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo swapo...

2020-01-10 21:04:38 118 0

原创 安装 laravel

用 Composer 安装: $ composer global require "laravel/installer" 在 .zshrc 里增加: export PATH="$HOME/.composer/vendor/bin:$PATH"

2020-01-10 00:05:33 22 0

原创 MySQL 的备份与恢复

备份: sudo mysqldump -u [user] -p [database_name] > [filename].sql 恢复: 创建一个同名空数据库 执行命令 mysql -u [user] -p [database_name] < [filename].sql ...

2020-01-09 00:53:13 19 0

提示
确定要删除当前文章?
取消 删除