Nodejs學習筆記(一)——初識Nodejs


前言:目前工作的分內之事相對較為單一,希望可以通過工作之余的時間給自己充充電,只是沒有一個學伴或大神帶,只能說是摸索着前進。起初准備好好研究下Spring這個框架,下載了源碼,結合書籍准備一探究竟,看到了Spring如何加載bean,又如何轉換成自己的數據格式等等,雖尚未涉及實戰,倒算是對之前工作中遇到的一些困惑有所幫助。合計准備寫一篇博客以示我的“大數據小世界”的博客還不至於長草太深,只是后來機緣巧合,想了解下關於爬蟲一類的東西,Spring就先做擱置。

  在度娘上搜索爬蟲,鋪天蓋地的各色技術引入眼簾,而其中的python尤其是scrapy最為搶眼,憑借過去曾用過python寫過實驗計算程序的一面之緣,知道此腳本入門門檻不高,平易近人,遂狂找一通資料,准備進軍python。一周了解下來,看了些基本語法,和matlab的一些語法較為接近。

  可是后來,和一些小伙伴討論,可以考慮最近殺出來的黑馬nodejs,甚是搶眼。基本的出發點是nodejs語法與javascript一致,正好借着這個機會學習下js,也算是對於js從另一個角度好好認識下。(廢話太多,簡而言之,解釋兩點:1.為什么博客許久不曾更新; 2.今天乃至后面要談的是nodejs

本來准備寫一篇,但是寫完后發現就篇幅看來還是拆為兩篇比較合適~~~

 

  原本對於javascript就是一個小白,當然對於nodejs連小白都算不上。雖然之前有拜讀過《javascript權威指南》以及學習過Angularjs,但是終究因為缺乏應用場景,始終與js的關系是若即若離。

  Javascript的大名誰人不知,一門當初看來很不起眼的客戶端編程語言,node相信各位也是有所耳聞吧,可以說是js的服務端的一個平台。關於nodejs可以看看百度上的解釋:

  Node.js是一個基於Chrome JavaScript運行時建立的平台, 用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設備上運行的數據密集型的實時應用。

  另外,nodejs是單線程高並發非阻塞的平台。單線程?高並發?怎么解釋???

  我的理解,這個得益於node的回調機制以及異步處理機制

  有人要問,什么是回調機制(函數);什么是同步/異步;什么是阻塞/非阻塞....

  舉一個看到的網上Scott老師說的例子:

  需求場景1:你想要出去瀟灑,准備定個飯店,胡吃海喝一番,於是拿起電話打給了卡片上的沙縣小吃,問到:老板,你們那現在還有位置么,我要帶幫朋友去吃飯

  同步:老板說,好,你電話別掛,我這就去看看……(同步的意思就是:順序執行,一直到這個老板回來並說出是否有座位,該事件才結束,也才能執行下一個事件

 

  需求場景2:同1

  異步:老板說:好,我這邊還有個客人要結賬,我一會幫你看看,然后給您回個電話,然后掛了電話。(異步就是老板知道這個訂單了,但是可以過會再去看是否有位子或是立馬去看是否有位子,電話也可以隨便老板什么時候回,而在此間隙中,老板可以干很多事情,比如給客人結賬或是安排進店客人就坐等等,不像場景1中必須只能去看座位,因為電話還沒掛)

  回調:就是老板給我的回電。

  阻塞:就是場景1中的我,除了焦急的等待老板回來給我的消息,我什么也不能做。之后老板回來了並給出是否有座位的消息,我掛完電話,才能做其他事情。

  非阻塞:就是場景2中,老板說,稍后回電。那這事我就不用想傻子一樣在哪拿着電話干等着。我可以去做其他事,比如通知今晚要來共享大餐的朋友同學等。

  以上是我的一些個人見解,如有不正以及誤導之嫌,懇請指正,只求不誤人子弟。

 

  有了這些概念,再去想想單線程、高並發就不會覺得那么矛盾了,這也是node能夠如果風靡受寵的原因吧。

  關於nodejs的語法,無非就是js。當然在我看來還是需要時間來熟悉node這種相較java有很大的“隨意性”和不可思議的特性。

 

  背景我的機子node以及npm都已安裝好(Windows環境下),並且配置好了環境變量。Git bash也已經裝好。

  這篇主要介紹在搭建node環境過程中遇到的小問題以及搭建Eclipse開發Node環境的前提步驟

 

  1.對於通過npm安裝程序很慢甚至沒有反應的情況:

  可以通過在命令行中輸入npm install -g cnpm --registry=http://registry.npm.taobao.org來解決,后面就可以通過輸入cnpm install <你要安裝的模塊>來完成安裝。

 

  2.本來是想在本機上已經安裝好的Myeclipse上搭建個node開發平台,但是可能是版本太老,很多操作不方便,就下載了最新的eclipse。

  2.1首先需要安裝三個插件:

  Help->Install New Software


  node.js插件 -- nodeclipse

  更新地址:http://www.nodeclipse.org/updates

 

  

  這個在不翻牆的情況下好像反應很慢,下面的這個鏈接好像還蠻快的: http://dl.bintray.com/nodeclipse/nodeclipse/0.6.0/

 

 

  javascript編輯插件 -- VJET
  更新地址:http://download.eclipse.org/vjet/updates-0.10

  google V8插件(調試必備)
  更新地址:http://chromedevtools.googlecode.com/svn/update/dev/

 

 

 

  2.2 完成以上安裝后,重啟eclipse,然后就可以新建node項目了

 

 

  2.3 新建的RobotProject項目如下圖所示

 

  到目前為止,已經在Ecliplse中安裝了必要的插件,並且可以在Eclipse中新建一個Node Project,但這還遠遠不夠:一不能運行,二不能調試,欲知如何實現,請看下篇~~~

   如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!如果您想持續關注我的文章,請掃描二維碼,關注JackieZheng的微信公眾號,我會將我的文章推送給您,並和您一起分享我日常閱讀過的優質文章。

  

友情贊助

如果你覺得博主的文章對你那么一點小幫助,恰巧你又有想打賞博主的小沖動,那么事不宜遲,趕緊掃一掃,小額地贊助下,攢個奶粉錢,也是讓博主有動力繼續努力,寫出更好的文章^^。

    1. 支付寶                          2. 微信

                      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM