node入門基礎

node入門

nodejs是一門基於JavaScript的後臺編程語言,因爲其解析引擎爲V8引擎,性能比較強大,再加上與前端語言關係更爲密切的先天優點,使其在衆多後臺編程語言中脫穎而出。html

配置環境變量

編程語言都須要一個運行環境,程序員寫出來的代碼不可能什麼都不作電腦就能夠解析和運行,若是你是前端工程師,那麼你應該瞭解HTML、CSS、JavaScript這些語言都必需運行在瀏覽器中,緣由就是瀏覽器提供了這些代碼運行的環境,即瀏覽器內置了這些代碼的解析引擎,當前端代碼運行在瀏覽器中,瀏覽器會調用不一樣的解析引擎對相應的代碼進行解析和渲染,最後造成咱們看到的網頁。前端

那麼對於後臺代碼亦然,因爲沒有瀏覽器的平臺支持,後臺代碼要運行,必需有一個運行環境,node就是nodejs代碼運行的環境,怎麼讓你的電腦擁有這麼個環境呢?很簡單,去node官網下載node應用程序,而後安裝就好了(注意安裝的時候要記住node的安裝目錄)。node

運行環境有了,可是還面臨一個問題,就是代碼怎樣才能在該環境中運行呢?參照前端代碼,你只要雙擊打開後綴名爲html的文件,該文件的代碼就會自動在瀏覽器中運行了。可是後臺代碼可沒這麼簡單,你須要藉助命令提示符來讓你的node代碼跑起來,須要執行的命令爲node <file name>jquery

到這裏你可能就會想,爲何執行這麼一條命令,就能讓代碼執行在node環境中呢?這就須要瞭解環境變量了。命令提示符中非自帶的命令到須要手動配置一個環境變量,執行該命令的時候系統會自動去事先配好的環境目錄中尋找到相應的應用程序,而後執行該程序。程序員

計算機=> 屬性 => 高級系統設置 => 環境變量 => path新增(上文提到的安裝node的目錄)web

nodejs是單線程後臺語言

nodejs是基於JavaScript的後臺語言,JavaScript自己就是單線程語言,那麼nodejs理所固然的也就成了單線程後臺語言,那麼線程究竟是個什麼東西呢?npm

要解釋線程,那麼必需先了解另外一個概念:進程。進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操做系統結構的基礎。程序是指令、數據及其組織形式的描述,進程是程序的實體。(該描述來自百度百科)通俗的說,打開任務管理器,你會看到不少進程,這些進程都或多或少佔電腦的CPU和內存的,每一個進程都是一段程序的實例,這些進程組成了計算機全部功能的實現。編程

那麼線程呢,線程,有時被稱爲輕量級進程(Lightweight Process,LWP),是程序執行流的最小單元。線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程本身不擁有系統資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的所有資源。一個線程能夠建立和撤消另外一個線程,同一進程中的多個線程之間能夠併發執行。(一樣來自百度百科...)通俗的說,線程就是一個進程代碼執行的一條線,在一個線程中,代碼只能按必定順序前後執行,不能同時執行,多線程感受就像能夠同時幹不少事,切換上下文的速度比較快。json

異步編程

因爲node是單線程的,因此若是一段代碼比較耗時,那麼就會出現代碼阻塞的狀況,特別是後臺中對於文件讀寫的操做,因此在後臺開發中,能用異步(非阻塞)就不要用同步。由於你不知道一段異步代碼何時執行完畢,因此在異步編程中,通常都會使用回調函數來控制代碼的執行順序,而異步編程也是node開發中的一個難點。瀏覽器

npm

後臺開發還有一個很是重要的概念就是模塊化開發,一個程序的功能須要分紅不少模塊,模塊之間互不影響,不然在大型應用程序中開發根本沒法進行。在後臺開發中,咱們無可避免地須要使用第三方模塊來快速實現一些功能,那麼怎麼才能將別人寫好的第三方模塊添加到咱們本身的項目當中呢?npm就是用來實現這個功能的。npm是包管理工具,用於管理第三方模塊,是node自帶的工具,無需單獨安裝。

npm install <package name>  //本地安裝模塊
npm install <package name> -g   //全局安裝模塊
npm uninstall <package name>    //卸載本地模塊
npm uninstall <package name> -g    //卸載全局模塊
npm --help  //查看npm相關命令

使用npm全局安裝的包不會被配置到環境變量中,因爲npm已經存在環境變量中,至關於在npm下有一個快捷方式鏈接真實的文件

nrm切換下載地址

nrm是一個切換npm下載源的工具,使用前須要安裝,可以切換到國內比較快的下載源

nrm ls 列出全部源
nrm test 測試全部源的下載速度
nrm use <source name> 切換不一樣的源

package.json 能夠記錄安裝過哪些包

使用npm本地安裝(在當前項目中使用),默認安裝時會在當前目錄查找node_module文件夾,若是找不到,則向上級目錄查找,一直找到根目錄,若是找到了,則安裝到該文件夾,若是沒找到,則會在當前目錄新建一個node_module文件夾,將包裝到該文件夾下;若是初始化一個package.json文件,就不會致使向上級目錄查找

npm init -y //初始化(生成)package.json文件
npm install jquery --save   //項目依賴
npm install babel-core --save-dev   //開發依賴

項目依賴是指項目的代碼想要正常的運行就須要該模塊的支持,顯然不管什麼時候,項目依賴的包都應在存在於項目中;而開發依賴則指的是項目上線的時候該模塊須要使用,上線以後這些包就不須要了,好比babel等代碼編譯的包。

當在不一樣的電腦上進行相同的項目開發的時候,若是有package.json文件記錄了依賴的包,就只要執行npm install來安裝全部項目須要使用到的第三方模塊

注意安裝的時候加了什麼後綴,卸載的時候也要加一樣的後綴

yarn

yarn和npm的功能同樣,可是yarn是第三方工具,須要安裝,那麼爲何須要yarn呢?簡而言之,yarn具備更快的包安裝速度與更安全的包管理機制,若是想詳細瞭解這二者的區別,能夠閱讀這篇文章:http://web.jobbole.com/88459/

  • 初始化package.json

yarn init -y
  • 安裝包

yarn    //跑環境,至關於npm install
yarn add jquery   //默認就是項目依賴
yarn add babel-core --dev  //開發依賴
  • 卸載包

yarn remove <package name>

總結

以上只是node開發須要掌握的一些基礎入門知識,瞭解這些後起碼不會對node以及後臺開發一無所知,這些知識能爲你的node開發開個好頭。

相關文章
相關標籤/搜索