談一談最近學了一段時間的node.js

官方說明javascript

1.NodeJS宣稱其目標是「旨在提供一種簡單的構建可伸縮網絡程序的方法」。php

2.node是一個基於Chrome V8引擎進行代碼解釋的、輕量、可伸縮的具備事件驅動和非阻塞I/O機制的js運行環境。前端

3.node適合處理高併發要求的項目,適合高I/O密集型應用。java

因此:不適合CPU密集型應用;node

CPU密集型應用給Node帶來的挑戰主要是:因爲JavaScript單線程的緣由,若是有長時間運行的計算(好比大循環),將會致使CPU時間片不能釋放,使得後續I/O沒法發起。不過,能夠分解大型運算任務爲多個小任務,使得運算可以適時釋放,不阻塞I/O調用的發起。jquery

4.node當下很火。webpack

/-----------------------------------------------------------------------/git

個人理解web

對於node.js個人瞭解是從我開始使用git和webpack的時候,由於要用到node環境,並且要接觸一部分的node控制檯代碼,不過這些都是簡單的瞭解,讓我知道了,node是可讓git和webpack運行的一種安裝環境,而且是個npm包管理工具,你須要什麼代碼,node的包也會有一部分,好比說jquery,bootstrap等;ajax

而後就是開始看到node官網的文檔,瞭解到node能夠做爲後臺的語言進行一系列的操做,可以本身搭建服務器,做爲服務器的時候咱們會用到http模塊,這屬於node自帶的模塊,而後就是createserver搭建服務器,後來以爲一直npm建立開啓服務器比較麻煩,就在網上了解到有個supervisor這個插件吧,能夠監聽服務器,而後就開始考慮做爲後臺的功能,比後臺給數據以前本身先測試一下,再好比,瞭解一下服務器與終端之間的交流SocketH5新增的webSocket,作點聊天室的demo,固然了有點醜陋,不過基本的對話功能也是基於sorket實現了。

有時候node也須要進行與數據庫的連接,數據庫的端口爲27017---下面以node中的路由/liuyan---->數據庫User,集合liuyan作一個簡單的查找demo

MySQL我就有點看不懂了,而對於SQLServer也是僅限於學校的知識,那麼在網上學的時候就看到了另外一種Mongodb,(稍後談一下下);

var router = express.Router();
var mongodb = require("mongodb").MongodbClient;
var db_str = "mongodb://127.0.0.1:27017/{{你數據庫的名字}}"


router.get("/liuyan", (req, res) => {
     // res.render("liuyan",{});
        var findLy = function(db, cb) {
           var conn = db.collection("liuyan");
           conn.find({}).toArray((err, result) => {
               cb(result);
           })
        }

   mongodb.connect(db_str, (err, db) => {
      if (!err) {
          findLy(db, (result) => {
              res.render("liuyan", { result: result });
              db.close();
          })
      }
   })

})

簡單說一下Mongodb,我用這個數據庫也是因爲node.js,並且,控制檯的代碼我也沒有記得很清楚,因此就常在小火箭V3可視化工具裏操做Mongodb的數據。

Mongodb:做爲數據庫是一種不難的數據庫,他的流行應該歸於他的分佈式和非關係型數據庫上,以及操做簡單,有大量的查詢指令,可是他已經不支持32位系統了,而且佔用空間比較大。

並且和通常數據庫不一樣的是,他的三元素構成是數據庫,集合,文檔,固然也和關係型數據庫中的數據庫,表,行相對應。而且,使用前(僅限於window系統,Mac等有錢了再買吧)須要將在盤符下的mogodb/bin/mongod.exe和mongo.exe依次打開,敲黑板這是重點操做,而且,直接盤符下還要有一個空的db文件夾,用來存儲數據。

 

後來,瞭解到node能夠建立後臺項目,摸索着用express框架作了個我的的系統,express -e pro建立pro文件目錄結構,

 1 pro
 2 |----bin
 3 |     |----www
 4 |
 5 |----public
 6 |     |----images
 7 |     |----javascript
 8 |     |----stylesheet
 9 |
10 |----router
11 |     |----index.js
12 |     |----users.js
13 |
14 |----view
15 |     |----index.ejs
16 |     |----error.ejs
17 |
18 |----app.js

 

 

固然,express也須要進行npm install下載,頁面雖然說不夠完美不過也在一直完善,頁面的ejs文件也是從最初的index.ejs到如今的有了簡單的登陸註冊留言等,雖然裏面的數據是我寫的假的數據,可是也是我用node.js連接數據庫,再使用mongodb的查詢或者是寫入的代碼進行的瀏覽以及寫入,而數據庫的控制檯的代碼查看着有點費勁,我就用他的可視化工具「v3小火箭」進行操做。

--------------------------------------------------------------------------------------------

在接下來的瞭解中發現,node.js不是很適合做爲純粹的後臺,和java,php這種成熟的語言來講,他自己就有必定的缺陷,好比不能充分利用cpu,並且他是單線程的,有一部分可能性會崩潰。但他也有好處,高併發的場景下很實用,就是由於他的非阻塞I/O機制,很適合那種大量ajax請求的狀況,並且他和前端js的合做很好,讓我一個前端人員也有機會接觸到了後臺的語言。

雖然如今node.js出現沒幾年,東西比較新,可是,他做爲和js合做的很融洽的後臺,再加上很是好用的npm,能夠加快咱們的代碼開發速度.

不過要說node火了,我以爲否則,而爲隱隱以爲這是假象,雖然node用起來真的很順心,也放寬了擼代碼時間。不過,就目前來講,node還算是挺新的,還算是在開荒的狀態,想讓他真的火起來,可能還須要一點時間。而他火起來的緣由,大概是,前端同志們被後臺大哥們"打壓"的過久了吧,哈哈哈,好不容易有了可能翻身的機會,抓住機會就開始學,固然,不可否認node和前端的接觸真的很融洽,並且接觸的Mongodb這個數據庫也不是很艱難。

(ps:作項目和它火不火有什麼關係啊,項目以最優的水平作出來,bug調試好,我以爲就很不錯了,哈哈哈)

相關文章
相關標籤/搜索