初識nodejs
??19年年底一個偶然的機會接到年會任務,有微信掃碼登錄、投票、彈幕等功能,于是決定用node 來寫幾個服務,結果也比較順利,
??當時用看了下koa2的官方檔案,知道怎么連接資料庫、怎么映射表物體,怎么處理http,怎么處理例外等,就可以直接寫起來了,從應用層面上來說 nodejs 入門還是挺簡單的,前幾天在整理語雀時發現前幾年整理的nodjs的檔案,這里分享下,希望對于初學者有些幫助,

什么是服務器
??服務器也是電腦,服務器是為電腦提供服務的電腦、設備,既然是電腦,那么它也一樣是由CPU,主板,記憶體條,硬碟,機箱,電源等硬體組成,當然由于服務器的特殊性,根我們家用的電腦還是有區別,如大小,處理資料的快慢,溫度等,
??服務器也是計算機、電腦,只不過分工不同,如我們人類有醫生、護士、律師等,在計算機的世界中也是如此,專門提供服務的計算機,我們叫服務器,
??如在我們寫了一個網站,我們想讓其他人也能打開這個網址,這個時候我們可以把寫好的代碼發給他,讓他跑起來,雖然這樣也可以,但是這樣非常不友好,第一是用戶很多呢?第二并不是所有人都是程式員,所以這個時候如果把這個東西放到某臺計算機A上,然后別人可以通過某種服務來訪問(比如 http 服務),此時這個計算機A就叫服務器,當然現實生活中服務器不止這一種,還有如 資料服務器、檔案服務器、應用服務器、WEB服務器等,根據計算機的服務請求,并進行相應的處理,具備承擔服務和保障服務的能力,

通俗理解:服務器是提供計算機服務的設備,
常用linux命令
| pwd | 顯示當前的目錄路徑 | |
| ls | 顯示當前目錄下的內容 | |
| ls -R | 列出子目錄中的所有檔案 | |
| ls -a | 顯示隱藏的檔案 | |
| cd | 改變當前作業目錄 | cd .. 打開上一級,cd / 打開跟目錄 |
| cls | 清除螢屏資訊 | |
| mkdir | 創建目錄 | |
| rm | 洗掉檔案或者空目錄 | |
| rmdir | 洗掉空目錄 | |
| rm -rf dir | 洗掉非空目錄 | |
| ps | 列出系統中當前正在運行的那些行程 | |
| ps -ef | grep ssh | 查找特定行程資訊 | ps -ef | grep mysql |
| kill -9 pid | 終止某行程 |
同步、異步
??同步就是指一個行程在執行某個動作、請求時,如果這個動作需要一段時間才有結果,那么這個行程將會一直等待下去,直到收到回傳資訊才繼續執行下去,反之異步,類似的概念還有 io 阻塞與非阻塞,如ui 界面中點擊一個按鈕給服務端發出一個請求,如果這個程序涉及成同步的,那么ui 會一直等待這個介面,在這個介面未回傳時整個ui界面都是不可用的狀態,
網路埠
??通俗的理解,把計算機想成一個大的菜市場,菜市場中的各個檔口就是安裝在電腦上的各個應用程式,而檔口的編號就是類似我們說的埠,ip 只是知道菜市場的地址,并不知道具體根哪個檔口通信,這就是埠的作用,
??在看看比較專業的定義,埠號的主要作用是表示一臺計算機中的特定行程所提供的服務,網路中的計算機是通過IP地址來代表其身份的,它只能表示某臺特定的計算機,但是一臺計算機上可以同時提供很多個服務,如資料庫服務、FTP服務、Web服務等,我們就通過埠號來區別相同計算機所提供的這些不同的服務,如常見的埠號21表示的是FTP服務,埠號23表示的是Telnet服務,埠號25指的是SMTP服務等,
url 格式??
URL的全稱是Uniform Resource Locator(統一資源定位符),它是因特網的萬維網服務程式上用于指定資訊位置的表示方法,
通俗理解就是 URL就是資源的地址、位置,互聯網上的每個資源都有一個唯一的URL,通過1個URL,能找到互聯網上唯一的1個資源,
URL的一般語法格式為:protocol :// hostname[:port] / path / [:parameters][?query]#anchor其中帶方括號的為可選項
- protocol:代表的是訪問的協議,一般為http或者https以及ftp等,
- hostname:主機名,域名,比如www.baidu.com,
- port:埠號,當你訪問一個網站的時候,瀏覽器默認使用80埠,
- path:查找路徑,比如:www.jianshu.com/trending/now,后面的trending/now就是path,
- parameters: 資源檔案名,有時候統一叫path
- query:查詢字串,比如:www.baidu.com/s?wd=python,后面的wd=python就是查詢字串,
- anchor:錨點,后臺一般不用管,前端用來做頁面定位的,
常見的協議:
- http:超文本傳輸協議,訪問的是遠程的網路資源,格式是http://
- https:協議相當于是http協議的安全版
- file:訪問的是本地計算機上的資源,格式是file://(不用加主機地址)
- mailto:訪問的是電子郵件地址,格式是mailto:
- ftp:訪問的是共享主機的檔案資源,格式是 ftp://
- thunder:通過支持thunder(專用下載鏈接)協議的P2P軟體訪問該資源(代表軟體:迅雷),格式是thunder://
http 協議
http在網路架構中屬于應用層協議,通過瀏覽器發起http 協議可以跟服務器進行通信,
HTTP(hypertext transport protocol)協議,中文叫超文本傳輸協議 是一種基于TCP/IP的應用層通信協議
這個協議詳細規定了 瀏覽器 和萬維網 服務器 之間互相通信的規則,協議中主要規定了兩個方面的內容
- 客戶端:用來向服務器發送資料,可以被稱之為請求報文
- 服務端:向客戶端回傳資料,可以被稱之為回應報文
請求報文
- 請求行
- 請求頭
- 空行
- 請求體
回應報文
- 回應行
- 回應頭
- 空行
- 回應體
資料庫
??資料庫是“按照資料結構來組織、存盤和管理資料的倉庫”,是一個長期存盤在計算機內的、有組織的、可共享的、統一管理的大量資料的集合,簡單理解就是存盤資料的倉庫,我們可以通過我們的代碼根這個倉庫建立連接,這樣可以操作、查詢這些資料,
資料庫通常分為關系型資料庫、非關系型資料庫,
關系型資料庫
??關系型資料庫和常見的表格比較相似,關系型資料庫中表與表之間是有很多復雜的關聯關系的, 常見的關系型資料庫有Mysql,SqlServer等,在輕量或者小型的應用中,使用不同的關系型資料庫對系統的性能影響不大,但是在構建大型應用時,則需要根據應用的業務需求和性能需求,選擇合適的關系型資料庫,
常見關系型資料庫: Oracle,SQLServer,DB2,Mysql
非關系型資料庫
??NoSQL僅僅是一個概念,泛指非關系型的資料庫,區別于關系資料庫,
??隨著近些年技術方向的不斷拓展,大量的NoSql資料庫如MongoDB、Redis、Memcache出于簡化資料庫結構、避免冗余、影響性能的表連接、摒棄復雜分布式的目的被設計,NoSQL資料庫適合追求速度和可擴展性、業務多變的應用場景,對于非結構化資料的處理更合適,如文章、評論等
SQL
SQL 是 Structured Query Language 的縮寫,中文譯為“結構化查詢語言”,SQL 是一種計算機語言,用來存盤、檢索和修改關系型資料庫中存盤的資料,
通俗理解就是可以用來操作我們存盤在資料庫中的資料的語言,如查詢、洗掉等
SELECT product_name, product_type
FROM Product;
WHERE 1 = 1
AND product_type = 'xx';
// 多表聯查
SELECT product_name, product_type
FROM Product1 t1,Product2 t2
WHERE 1 = 1
AND t1.id = t2.id;
// 同理
left join,
right join
其他分組、統計、排序等也很簡單
nginx 基本概念
Nginx是一個高性能的HTTP服務器和反向代理web服務器,在前端中我們知道一些基本的知識即可,通常我們用它來做靜態資源服務器、介面反向代理,
常用命令
start nginx #啟動nginx
nginx -s reload #重新加載Nginx組態檔,然后以優雅的方式重啟Nginx
nginx -s stop #強制停止Nginx服務
nginx -s quit #優雅地停止Nginx服務(即處理完所有請求后再停止服務)
nginx -h #打開幫助資訊
nginx -v #顯示版本資訊并退出
nginx -V #顯示版本和配置選項資訊,然后退出
nginx -t #檢測組態檔是否有語法錯誤,然后退出
nginx -T #檢測組態檔是否有語法錯誤,轉儲并退出
nginx -q #在檢測組態檔期間屏蔽非錯誤資訊
nginx -p prefix #設定前綴路徑(默認是:/usr/share/nginx/)
nginx -c filename #設定組態檔(默認是:/etc/nginx/nginx.conf)
nginx -g directives #設定組態檔外的全域指令
killall nginx #殺死所有nginx行程
配置注意事項
- 注意配置時 root與alias 區別,特別是我們前端打包時加了虛擬目錄,如果配置了 publicPath,那么我們需要配置alias,而不是root
- 注意匹配規則、順序,通常匹配了就不會繼續匹配下,所以如果多個類似的介面前綴,需要反向代理到不同的服務時要注意配置的順序
- 介面反向代理時加 / 與不加的區別
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/552031.html
標籤:JavaScript
上一篇:js中的變數
下一篇:返回列表
