利用vps搭建自己的ss梯子

最近蓝灯也挂了,看来还是自己搭建一个vpn服务比较靠谱,在网上搜了一些教程,通过实践亲手试验了一下,发现其实搭建一个私人的Shadowsocks也不是特别麻烦。
特此写下这篇文章,记录其中的搭建过程。

more >>

从零开始教你写一个NPM包

前言

本文主要记录我开发一个npm包:pixiv-login时的心得体会,其中穿插了一些日常开发的流程和技巧,希望对新手有所启发,大佬们看看就好_(:3」∠)

pixiv-login

pixiv-login的功能就是模拟用户登录网站pixiv,获取cookie
源码 npm

安装:

1
npm install --save pixiv-login

使用:

1
2
3
4
5
6
7
8
9
10
const pixivLogin = require('pixiv-login');
pixivLogin({
username: '你的用户名',
password: '你的密码'
}).then((cookie) => {
console.log(cookie);
}).catch((error) => {
console.log(error);
})

more >>

Koa2与Express比较

简单比较

  • Koa2最方便之处就是使用了async/await来做异步开发,而Express只是简陋的回调函数

  • Koa2使用ctx来表示上下文(this),Express使用req, res两个参数

  • 中间件(next)的执行顺序上,Express是简单的串联,而Koa2则类似于剥洋葱(从外面进来,又从里面出去)
    img

简单例子

对于异步请求,两种框架的不同写法

Koa2 (async + await)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const Koa = require('koa');
const app = new Koa();
const axios = require('axios');
app.use(async ctx => {
try {
let result = await axios.get('http://deepred5.com/test2.php');
ctx.body = result.data;
} catch (err) {
console.log('err');
console.log(err);
ctx.body = 'err';
}
});
app.listen(9099);
console.log('[demo] start-quick is starting at port 9099');

Express (经典回调 + Promise)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const express = require('express');
const app = express();
const axios = require('axios');
app.get('/', function (req, res) {
axios.get('http://deepred5.com/test2.php')
.then((response) => {
let data = response.data;
res.send(data);
}).catch((err) => {
console.log(err);
res.send('err');
});
});
let server = app.listen(3000, function () {
const host = server.address().address;
const port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});

可以看出,Koa2可以用同步的方式写出异步操作(注意:本质还是异步),这在可读性上是巨大的提升。
一旦习惯了async await的写法,真的是回不去原来的callback hell了!

http-server

http-server

有时,我们需要开启一个本地服务器来访问页面,而不是直接用浏览器打开。
以前我的通常做法是开启xampp的apache服务,然后把要访问的页面复制到htdocs文件夹下。
如果我们只是想简单的开启一个服务器而不需要运行后台脚本(比如PHP),那么其实可以通过node的http-server包来解决问题

全局安装

1
nmp install http-server -g

假设你想让F:\myblog底下的html可以通过服务器访问,那么只需

1
2
cd F:\myblog
http-server -p 3000

于是你就可以通过http://localhost:3000/访问F:\myblog

注意一下
http-server开启的服务器默认会有缓存,这在开发时不是很友好,可以通过下面的命令关闭缓存

1
http-server -p 3000 -c-1