Node开始以前

shell基础操做

安装shell工具oh-my-zsh

准备

0.安装yumhtml

sudo apt-get install yum
复制代码

1.查看当前环境shellvue

echo $SHELLnode

2.查看系统自带哪些shelllinux

cat /etc/shellsgit

3.安装zsh程序员

yum install zsh # CentOS(须要root身份,su + 用户名)
brew install zsh # mac安装
复制代码

4.将zsh设置为默认shelles6

chsh -s /bin/zsh # CentOS
# Mac以下
# 在 /etc/shells 文件中加入以下一行
/usr/local/bin/zsh
# 接着运行
chsh -s /usr/local/bin/zsh
复制代码

能够经过echo $SHELL查看当前默认的shell,若是没有改成/bin/zsh,那么须要重启shell。github

oh-my-zsh

配置zsh是一件麻烦的事儿,爱折腾的程序猿怎么可能忍受?!因而,oh-my-zsh出现了,有了这个东东,zsh配置起来就方便多了!shell

安装oh-my-zsh

有若干安装方式,介绍三种:npm

1.自动安装

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

2.手动安装

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
复制代码

3.真-手动安装(我选择)

  • 在oh-my-zsh的github主页,手动将zip包下载下来。
  • 将zip包解压,拷贝至~/.oh-my-zsh目录。此处省略拷贝的操做步骤。
  • 执行cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

三选一便可,适合各类环境下的安装,而后须要source ~/.zshrc将配置生效。如下修改了.zshrc文件以后,都执行一下这个命令。

参考:

zsh+on-my-zsh配置教程指南(程序员必备)【已备份】

Ubuntu 下 Oh My Zsh 的最佳实践「安装及配置」

Ubuntu 16.04下安装zsh和oh-my-zsh

为什么要学习shell命令

基于linux/unix的服务器出于稳定、性能的考量,大多使用命令行操做 诸多服务器命令并无图形化版本,好比 node 命令

shell命令的规则

第一个关键词为命令 以空格分隔,第二个及之后的关键词为参数 使用 && 能够在命令执行完毕后执行下一个 使用 \ 能够换行 在 nix 系统中,/ 表示目录分隔符,在windos中则为 \ nix系统中,以 / 为根目录,即进入该目录后,能够向下抵达全部目录 如下是一个可能的文件路径 /var/usr/local/bin/a.sh / 分割的符号中每个字符串表明一个目录

常见shell命令

cd 进入某个目录 ls/ll 列举出目录中的全部文件 mkdir 建立一个文件夹 touch 建立一个文件 cat 输出某文件的内容 vi 打开vi编辑器 ssh 使用ssh连接到服务器 exit 关闭当前连接或者进程 ctrl + c 结束当前进程

让终端走代理

参考:让终端走代理的几种方法

若是有蓝色的灯,就能够在设置-->高级设置-->http代理,复制这个地址,而后在命令行运行

export http_proxy=http://proxyAddress:port
复制代码

或者:

npm config set proxy http://server:port
复制代码

或者使用npm的淘宝镜像

npm 命令 + --registry=https://npm.taobao.org/mirrors/npm/
复制代码

Node环境配置

安装nvm

1.安装

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
复制代码

2.配置

vim ~/.zshrc

// 内容为(去掉#的注释):

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
复制代码

3.重启配置文件

source ~/.zshrc
复制代码

(注意是zsh的配置文件是zshrc不是bashrc,bashrc是bash的配置文件)

什么是NVM

NVM是 Node.js 的版本管理器,用于安装和切换不一样的Node.js版本。

因为在实际开发中咱们可能须要在不一样的node版本之间切换,因此就须要使用NVM来管理node的版本

若是想要使用某个版本的node就使用:

nvm use + node的版本号
复制代码

咱们可使用x下面的命令查看当前安装过的node的版本,只要有的,均可以使用nvm use + node的版本号来切换

nvm ls
复制代码

NVM不是NPM,NVM(Node Version Manager)用来管理Node自己,NPM(Node Package Manager)则管理Node.js开发的包

Node的使用

  • 与其余命令行程序同样,使用 node argv1 argv2 的方式便可运行命令,一般 argv1 为文件名 如 node ./test.js 表示使用node运行当前目录下的 test.js 文件

  • 直接输入 node 命令则会打开node 的 REPL 环境,即输入一行代码运行一行代码,相似与在浏览器中的开发者工具中,输入如:

var a = 1
console.log(a)  // 输出1
复制代码

一样的道理,咱们也能够在node的环境中执行上面的代码,也会输出一样的结果

如何正确使用一个命令

man + 命令  或者 命令+ -- help  // 这样就能够拿到命令的具体使用方法
复制代码

NPM的使用

安装 Node.js 会同时安装 NPM,一样,使用 node版本也会切换npm版本,请注意 使用npm init 会在当前目录下生成一个npm项目,并将填写的信息写到 package.json 中,这样npm就能正确的识别当前的目录为npm的项目了,由于它找到了package.json这个文件了

运行 npm i/npm install 会根据当前目录下的package.json文件安装项目所须要的依赖,使用npm install安装存储node项目中的三方库(包)都存放在新生成的node_modules文件夹下 package.json 更新后,手动运行npm i能够更新项目中的依赖 相应的,npm uninstall 则能够删除安装的依赖

package.json中的脚本放在scripts下,咱们能够在它下面加一些自定义的运行的方法,若是加一个

"start": "node ./index.js"
复制代码

在命令行运行npm start(或者npm run start是一个意思)的时候就会以node命令去执行index.js文件

> demo@0.0.1 start /home/lee/Desktop/demo   // 是什么项目跑的
> node ./index.js                           // 跑的命令是什么

hello world                                 // 跑的文件的最终运行结果

复制代码

结果就输出:‘hello world’(npm init的时候会初始化一个入口文件,默认为index.js)

Git的基本操做

Git是什么

版本控制工具 由linux之父linus开发 当前世界上运用最普遍的版本控制工具

为何要用Git

版本控制工具可使代码更不容易丢失 版本控制工具能够多人(甚至是超大团队)协做开发更加容易 Git使用普遍(你最好也用) 同♂性♂交♂友网站 github.com

Git的基本操做

使用man git 查看完整操做列表 git clone 从远端仓库克隆仓库 git checkout 切换分支 git branch 新生成分支 git commit 新建一个提交 git add 将文件添加到版本控制工具 git merge 合并分支

IDE和Eslint配置

1.npm配置镜像、设置代理

2.将JavaScript的语言版本设置为兼容es6

3.搜索node.js and npm 设置node的安装版本,开启nodejs core library,代码提示当前使用的框架或者库

4.指定ESlint,主要做用是代码提示规范代码,它会支持不少标准,不过airbnb标准稍微严格一点

i. 安装这个包airbnb:ESLint使用说明

(
  export PKG=eslint-config-airbnb;
  npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)
复制代码

或者:

# 首先 经过npm info命令查询依赖
$ npm info "eslint-config-airbnb-base@latest" peerDependencies
{ eslint: '^4.9.0', 'eslint-plugin-import': '^2.7.0' }

# 根据查询结果手动安装指定版本的依赖包
npm install eslint@4.9.0 --save-dev
...

# Linux用户能够直接执行,自动完成依赖包安装
export PKG=eslint-config-airbnb-base;
npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"

# 安装airbnb配置
npm install eslint-config-airbnb-base@latest
复制代码

ii.安装完以后就package.json就会多出几个devDependencies依赖

深度截图_选择区域_20190908180612.png

iii.eslint的配置

首先会指定eslint的包

深度截图_选择区域_20190908180554.png

而后须要配置.eslintrc.js的文件,咱们能够手动的建立,也能够经过命令行的方式建立

npm install -g eslint

eslint --init
复制代码

安装完成以后项目目录下就会自动生成一个.eslintrc.js的文件

NodeSchool

1.参考

2.安装:

npm install -g learnyounode
复制代码

在命令行中执行 learnyounode, 若出现学习目录,则表示安装成功。

3.开始学习

在命令行中执行 learnyounode 。选择想学的课程,按回车键,开始学习。

4.运行代码

完成任务后,能够用以下两种方式运行代码:

方式1:

node 程序文件.js
复制代码

方式2:

learnyounode run 程序文件.js
复制代码

5.验证代码

在肯定任务完成后,用以下命令验证你的程序与任务的要求是否一致:

learnyounode verify 程序文件.js
复制代码

上面命令运行完成后,会生成测试报告。若是验证成功,该课程会被标记为完成。若是失败,能够在测试报告中观察程序的预期值和实际的值的差别,修改代码后,执行 learnyounode run 程序文件.js 再进行验证。

输入 learnyounode 进入下一个课程的学习。

6.更多课程

上文提到是 NodeSchool 中 Node.js 相关的教程,除此以外,NodeSchool 还包含: JavaScript,WebGL,函数式编程,Git, npm 等一堆课程。这些课程能够在官网的首页中找到。

你们会用学会 NodeSchool 了吗~ 点击NodeSchool官网报名,一块儿学起来吧!

HTTP基础

基础

HTTP:超文本传输协议 超文本传输协议 超文本:像文本,但比文本更丰富,好比包含图片和样式 传输:为了传输超文本而产生的协议 协议:一套规则,也即符合规则便可行

HTTP的格式:文本

HTTP的组成部分:头部Header、请求体BODY,中间用空行分割

URL:惟一资源定位符

很是天然的地址属性 定位某个惟一资源 构成 协议://主机:端口/路径?查询#锚

主机能够是一个域名或者一个IP地址

主机即从哪一台服务器上获取资源,端口指哪台服务器上的某一块内存空间,路径是想要到服务器上获取的资源在服务器上的存放位置或路径。截止到路径为止,对于http来讲,文档的具体位置或地址已经肯定了,比如是省/市/区下面的哪一个图书馆

查询参数是想要从服务器上获取的更加具体的资源内容(好比特指某个文档),当须要查看文档里面的具体内容就用查询参数,好比是找到了图书馆的具体的某某书

锚 本来指的是在页面中的哪一个位置,后面单页页面的应用也能够肯定是单页页面的哪个页面或组件(好比vue实现的单页页面,比如是找到具体的某本书的哪一章节

例子:协议://主机:端口/路径?查询#锚(协议除了http还有ftp、ssh其余自定义的协议)

Schema://Host:Port/Path?query http://localhost:8082/user?name=aslfkd& duang://a.b.c:7200/hahaha?lalal=true

HTTP头部:

第一行 方法、路径、协议版本,使用空格分割 GET /user HTTP/1.1 (也就是说明使用什么样的协议对什么样的资源执行怎么的操做)

第二行开始:内容

HTTP方法: GET POST PUT DELETE PATCH HEAD OPTIONS TRACE 协议版本 HTTP1.1 路径,须要请求的资源的路径,好比 /index.html /songs/lalala.mp3

HTTP头中常见键值对:

Host 指明请求的地址
Server 服务器信息
Content-Type 请求体的格式,如 xxx/www-url-encoded-form-data application/json
Accept: 接受的返回格式
Accept-Encoding:接受的请求编码
Accept-Language:接受的语言
Pragma:兼容http1.0的缓存
Cache-Control:缓存策略
Via:走过的服务器链路信息

Response头第一行: 协议 状态码 状态描述 如 HTTP/1.1 200 OK

返回码:

2xx 请求成功 200成功 201建立 202接受 203代理 206部分处理
3XX 重定向 302找到,重定向 304未修改
4xx 客户端错误 400请求内容错误 401无权限 403禁止访问 404你懂的
5xx 服务器错误 500服务器炸了 502网关炸了 503炸几分钟 504超时

HTTP头部和HTTP体中间:一个空行 HTTP体:真正传输的内容 内容随意,格式由Content-Type指定

推荐书目:《图解HTTP》 《HTTP权威指南》

HTTP协议标准RFC 2616中文

[HTTP协议标准RFC 2616(www.w3.org/Protocols/r…)

HTTP就是规定客户端和服务器之间对话、交流的协议

相关文章
相关标签/搜索