树莓派安装系统
树莓派安装系统,系统设置里开启摄像头,连接网络。
注意:在最新树莓派系统上存在兼通性问题, 使用此版本系统http://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-07/,不要更新系统。
一键安装命令
在树莓派的终端里运行下面代码:
1 | sudo bash <(curl -sL https://network-rc.esonwong.com/download/install.sh) |
树莓派安装系统,系统设置里开启摄像头,连接网络。
注意:在最新树莓派系统上存在兼通性问题, 使用此版本系统http://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-07/,不要更新系统。
在树莓派的终端里运行下面代码:
1 | sudo bash <(curl -sL https://network-rc.esonwong.com/download/install.sh) |
我们一般使用字面量的形式直接创建对象,但是这种创建方式对于创建大量相似对象的时候,会产生大量的重复代码。
1 | const cat1 = { |
但 JavaScript 和一般的面向对象的语言不同,在 ES6 之前它没有类的概念。但是我们可以使用函数来进行模拟,从而产生出可复用的对象。
1 | function createCat(name){ |
工厂模式的主要工作原理是用函数来封装创建对象的细节,从而通过调用函数来达到复用的目的。但是它有一个很大的问题就是创建出来的对象无法和某个类型联系起来,它只是简单的封装了复用代码,而没有建立起对象和类型间的关系。
ES6 加入了 Class 的语法,Class 的大部分功能 ES5 都可以做到,我们可以把 class
看作是一个语法糖。本篇文章我们一步步来看看 Babel 是怎么把 class
转换成 ES5 语法的。
本教程介绍使用树莓派和遥控车制作一台可以通过网络控制的遥控车。软件使用我开发的 network-rc。
HTTP 状态码是指 HTTP 响应报文里状态行里的 Status-Code,用于指示特定 HTTP 响应的状态和类型。
HTTP 响应报文状态行由 HTTP-Version、Status-Code、Reason-Phrase 组成:
1 | HTTP/1.1 200 OK |
如果客户端向服务器发送请求的 Header 里包含 Expect: 100-continue
头,服务器应当响应 100
,然后客户端再向服务器发送 body 数据。
在如果客户端请求切换协议,切换协议之前,服务器响应 101
表示服务器也正在切换的协议。
比如客户端请求切换到 websocket 协议:
1 | GET /ws HTTP/1.1 |
服务器响应:
1 | HTTP/1.1 101 Switching Protocols |
接下来将以 websocket 协议进行通信。
此代码表示服务器已收到并正在处理该请求,但没有响应可用。如果服务器需要很长时间处理一个请求,可以先响应此状态码,处理完再发送 body。
与Link一起使用告知客户端需要预加载的一些文件,可加速网页加载。以 HTML 为列,通常浏览器需要加载 html 文件并解析到外部文件的引用才会开始加载这些文件,而利用此特性可以提前加载这些文件。
成功响应状态的具体意义:成功响应
响应状态是 202 Accepted
的话,可能需要客户端继续轮询接口至响应状态为 200 ok
。
重定向响应状态的具体意义:重定向响应
4xx 错误是客户端发送的请求本身存在错误返回的状态,包括请求地址错误、请求参数错误、认证错误等。客户端不应该再重新发送请求,而是先解决错误。
客户端错误响应状态的具体意义:客户端错误响应
5xx 码告诉客户端其发送的请求是完美通过验证的但服务器端出现了一些问题。客户端可以无需做任务修改来继续向服务端发送请求。
服务器错误响应状态的具体意义:服务器错误响应
在开发时我们协商接口规范时,需要要求接口返回的状态码符合 section 10 of RFC 2616 的定义 ,以便在客户端封装请求模块通过判断状态码统一处理请求异常。
比如:
401 Unauthorized
时,客户端提示用户没有权限404 Not Found
时, 提示“发出的请求针对的是不存在的记录,服务器没有进行操作” 等等…