最简短的开场白

Node 是什么

  • 用于编写服务器端应用

  • javascript 核心语法

  • 只是操作的对象不同

    前端DOM文档对象
    BOM/DOM浏览器对象
    XMLHttpRequest/fetch网络通讯
    后端os操作系统
    process进程
    fs文件系统
    net网络通讯

API 哪里找

英文 https://nodejs.org/dist/latest-v10.x/docs/api/

阅读全文 »

什么是 Redis

Redis 是一个开源(BSD 许可)的内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的地理空间索引。Redis 具有内置复制,Lua 脚本,LRU 驱逐,事务和不同级别的磁盘持久性,并通过 Redis Sentinel 提供高可用性并使用 Redis Cluster 自动分区。

  • redis 是由 C 语言写成
  • 开源 key-value 型数据库

特点

  • 速度快,因为数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是 O(1)

  • 支持丰富数据类型,支持 string,list,set,sorted set,hash

  • 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

  • 丰富的特性:可用于缓存,消息,按 key 设置过期时间,过期后将会自动删除

阅读全文 »

购买阿里云学生机

  1. 使用淘宝号登陆阿里云 app
  2. 点击中间部分校园扶持
  3. 进入新页面点击学生特惠
  4. 选择云服务器
  5. 在选操作系统的时候选 centos,如果没有 centos 系统可以先选 ubuntu(后续更改 centos)
  6. 选好以后购买即可 9.9 元一个月

更换 centos7 系统

  1. 登陆 PC 端阿里云网站(aliyun.com)
  2. 点击右上角控制台,打开新页面点击左侧云服务器 ECS
  3. 点击新的页面左侧的 实例 会显示已经买了的服务器
  4. 点击服务器的实例名称会跳转实例详情页面
  5. 在详情页面点击右上角停止按钮,会有提示,选择停止,确定即可
  6. 停止以后点击下方的更换系统盘,在新的页面选择centos7.2版本
  7. 下边登陆密码记录好,一会儿备用(看下图)。更换以后返回实例列表会显示提供的公共 ip地址用来访问和远程连接

阅读全文 »

公钥信任

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 生成公钥
ssh-keygen -t rsa -P ''

xubin@xubindeMBP:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xubin/.ssh/id_rsa):
/Users/xubin/.ssh/id_rsa already exists.
Overwrite (y/n)? yes
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xubin/.ssh/id_rsa.
Your public key has been saved in /Users/xubin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IeFPfrcQ3hhP64SRTAFzGIHl2ROcopl5HotRi2XNOGk xubin@xubindeMBP
The key's randomart image is:
+---[RSA 2048]----+
| .o*@=o |
| ..oEB=o |
| o@=+O . |
| B=+o @ . |
| =So* * |
| . o. = . |
| o |
| |
| |
+----[SHA256]-----+

# 查看公钥
cat .ssh/id_rsa.pub

# 将公钥拷贝到服务器
scp ~/.ssh/id_rsa.pub root@47.98.252.XXX:/root

# 将公钥加入信任列表
cat id_dsa.pub >> ~/.ssh/authorized_keys

SSH 登录

1
2
3
# root 为用户名
# ip地址
ssh root@47.98.252.XXX

目录操作

阅读全文 »

实战 Mac

Brew 安装

安装 Homebrew

https://brew.sh/

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
阅读全文 »

根据用户的权限不同,页面上要显示不同的内容
页面引入组件较多
如果逐个判断权限引入的话,v-if,v-else-if 使用太多,影响代码的美观

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<template>
<div class="info">
<component :is="roleComponent" v-if="roleComponent" />
</div>
</template>
<script>
import AdminInfo from "./admin-info";
import BookkeeperInfo from "./bookkeeper-info";
import HrInfo from "./hr-info";
import UserInfo from "./user-info";
export default {
components: {
AdminInfo,
BookkeeperInfo,
HrInfo,
UserInfo
},
data() {
return {
roleComponents: {
admin: AdminInfo,
bookkeeper: BookkeeperInfo,
hr: HrInfo,
user: UserInfo
},
role: "user",
roleComponent: undefined
};
},
created() {
const { role, roleComponents } = this;
this.roleComponent = roleComponents[role];
}
};
</script>

Vue 中,props 属性是单向数据传输的,父级的 prop 的更新会向下流动到子组件中,但是反过来不行。可是有些情况,我们需要对 prop 进行“双向绑定”。上文中,我们提到了使用 v-model 实现双向绑定。但有时候我们希望一个组件可以实现多个数据的“双向绑定”,而 v-model 一个组件只能有一个(Vue3.0 可以有多个),这时候就需要使用到.sync。

.sync 与 v-model 的异同

相同点:

两者的本质都是语法糖,目的都是实现组件与外部数据的双向绑定
两个都是通过属性+事件来实现的

不同点:

阅读全文 »

在用 Vue 开发前端时,不论使用原生还是封装好的 UI 库,对于表单组件,一般都会使用到 v-model。虽然 v-model 是一个语法糖,但是吃到嘴里挺甜的啊。学会自定义 v-model,还是很有必要的。

基本用法

一个组件上的 v-model 默认是通过在组件上面定义一个名为 value 的 props,同时对外暴露一个名为 input 的事件。

源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<template>
<div class="custom-input">
<input :value="value" @change="$_handleChange" />
</div>
</template>

<script>
export default {
props: {
value: {
type: String,
default: ""
}
},
methods: {
$_handleChange(e) {
this.$emit("input", e.target.value);
}
}
};
</script>
阅读全文 »

大概率是秘钥设置不对的问题

检查

首先检查有没有在 GitHub 上添加你本机的 SSH key (添加 SSH key)

在用户主目录下,看看有没有 .ssh 目录,如果有,再看看这个目录下有没有 id_rsaid_rsa.pub 这两个文件。如果已经有了,可直接跳到下一步。如果没有,打开 Shell(Windows 下打开 Git Bash),创建 SSH Key。

创建 SSH Key

阅读全文 »