1年3个月前
因为一直装不上 node@14, 又急于使用 optional chaining, 终于在去年年底忍无可忍做了系统升级,整个过程都记录了下来,主要包括以下内容:
开机启动项配置变更
mongodb 跨大版本升级及数据恢复
certbot 变更
gitlab 遇到 gem 包升级问题
mysql 安装老版本及数据恢复
php 安装老版本(为了兼容老代码)
p...
3年11个月前
前些天吃晚饭的时候跟曹老师聊起来数据库的东西,顺带吐槽了下他们 MongoDB 用的很山寨,表里的每条数据还得单独存个时间戳字段,因为我们知道 MongoDB 自带的 _id 中是可以解析出秒级时间戳的。
曹老师当场不同意我的看法,认为他们这么做是有一定道理的,因为默认的 _id 是没法用的会重复,所以他们使用雪花算法自定义了 _id, 所以才又单独存了个时间戳字段。
且不说自定义 _id 的时候...
5年3个月前
最近在做的这个构建工具中,有个打包上传的功能,共分为两步:
使用 archiver 将文件打包成 zip 格式文件包
将 zip 包上传至指定地址
第一步最开始的时候做成了先本地生成一个临时文件,然后使用 request 模块上传:
// 简单代码,未做任何异常捕获和处理
const archiver = require('archiver');
const req...
6年6个月前
最近在搞 webpack@4.x 的时候,安装各种插件后总是会出现 UNMET PEER DEPENDENCY 这个东西,它到底是个什么错误呢?在通读了 Domenic Denicola 的这篇文章后,才有了个大致的理解
我还记得刚接触 node(node<5.0, npm<3....
6年8个月前
今天在使用 vue-cli 的时候报了更新提示,于是直接 npm update vue-cli -g, 发现并没有任何作用,使用更暴力的 npm update vue-cli -g --force 依然没有作用。看了官方提示后执行了 npm update vue-cli -dd 来显示更新过程中的细节,发现有这么一句:
outdated not updating vue-cli becaus...
7年前
刚开始配置多个 server 的时候,发现一个奇怪的现象,比如有两个域名 a.com 和 b.com, 将监听 a.com 的 server 注释掉,居然还能访问到 a.com, 并且是 b.com 的内容
到 nginx 官方查阅文档才了解到 default server 的概念,如果请求头中的 host 没有匹配到任何的 server name, nginx 就会将这个请求发送到这个端口的...
7年前
每次用微信打开我的博客页面,总能看到运营商那个恶心的注入广告,所以近期打算折腾下用上 https. 开始折腾新东西的时候,总是有种不知从哪里下手的感觉,那就先上某乎看看有哪些免费证书吧。
呼声比较高的是 Let's Encrypt, 不但完全免费,甚至提供了非常好用的配置工具 certbot
进入 certbot 官网选择 web 服务器和系统版本后,会给出详细的安装配置文档: ...
7年6个月前
前段时间入手了一个树莓派,一直没怎么折腾,最近事情少就打算搞一搞
让我惊奇的是官方提供的系统:RASPBIAN JESSIE(2016-05-27) 版本居然内置了 Nodejs, 虽然版本只有 v0.10.29
后续提到的折腾都是在 RASPBIAN JESSIE 这个版本下
先是更新所有软件包:
sudo apt-get upgrade
再通过 raspi-config ...
9年1个月前
记得上次博客改版的时候遇到过一个问题,感觉数据从前端 post 到服务端后发生了不正常的改变,当时也没有多想,写了几行 hack 解决了。幸亏当时留下了大量的注释,否则今天再看见那段 hack 肯定摸不着头脑:
req.body = querystring.parse(postData.join(''));
postData = null;
/**
* 此处有坑:
* 1....
9年1个月前
记得在很久之前安装各种 node 模块的时候,就遇到过 node-gyp 报的各式各样的错误,其中这个找不到 common.gypi 是很常见的。今天在安装 node-iconv 的时候,再次遇到了这个问题:
> iconv@2.1.11 install /root/web...
9年3个月前
以前写 Node, 基本上没有什么调试,只是简单的 console. 这样靠「猜」写出来的代码,「基于巧合」的编程,往往是很心虚的。
用过 node-inspector, 打了断点再点下一步的时候,就会从断点界面跳到 console 界面,不知道为什么会有这么奇怪的行为,不知道最新的版本是不是好些了。所以打算试试传说中的 web 开发神器:webstorm
下载安装,光是这个安装界面就深深...
9年11个月前
用过 mongodb 的同学们可能都遇到过,mongodb 在 open 之后没来的及 close, 再进行一次 open 操作将会导致报错,整个 nodejs 进程都死掉了。如下图:
解决方法大致有以下几种:
使用 Mongoose
open 之后,就不再 close
以上两种解决方案,对于我这个强迫症患者来说,都有问题。前者太霸道,后者有不确定因素。
一次偶然的机...
10年11个月前
首先遇到的问题是,刷新浏览器会触发 disconnect 和 connect 事件,这样会反复提示用户进入和离开。要解决这个问题,可以在 disconnect 的事件回调函数里面加一个延时。如果触发了 disconnect 后马上又触发了 connect, 则不执行 disconnect 的事件回调函数。
第二个问题是,用户在开多标签的情况下,每新打开/关闭一个标签,都会触发一次 connec...
10年12个月前
这两天在折腾这个博客的时候,遇到一些关于 session 和 cookie 的问题,回顾总结为此文。
博客刚落成的时候,我用的 connect-mongo 来存储 session, 那时候还不知道 session 到底什么什么东西,只知道它可以保持会话状态。在做登录的时候,就有点发晕了,我只验证了用户名和密码,通过的话,就将 user 重新写入 req.session. 后来我打开 mongo...
加载更多