node的優缺點及應用場景

Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎(V8引擎執行Javascript的速度很是快,性能很是好)php

能夠說node是運行在服務器端V8引擎上的JavaScriptnode

在JavaScript中,一般window是全局對象,而node.js中的全局對象是Globalweb

node不須要Apache,Naginx,IIS等Web服務器服務器

特徵:併發

1. 單線程異步

  一個進程中只有一個線程。程序順利執行前面執行完纔會執行後面的程序jsp

  優點:爲了提升服務器性能,單線程減小內存開銷
高併發

二、事件驅動性能

  某個條件完成以後執行ui

  無論是新用戶的請求,仍是老用戶的I/O完成,都將以事件方式加入事件環,等待調度

三、非阻塞I/O

  I/O->input/output,表明輸入輸出

  單線程執行任務時,不堵塞通道(無須排隊),這個線程是一直在工做的

  通常操做執行異步,同步容易堵塞(形成系統假死)

//阻塞代碼
 const fs = require("fs"); let data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("程序執行結束"); //非阻塞代碼
 const fs = require("fs"); fs.readFile('input.txt',(error,data)=>{ if(error) return console.log(error); console.log(data.toString()); }); console.log("程序執行結束");

 

node與php、jsp等其餘服務器端對比

一、node 沒法直接渲染靜態頁面,提供靜態服務
二、node 沒有根目錄的概念
三、node 必須經過路由程序指定文件才能渲染文件
四、node 比其餘服務端性能更好,速度更快

 

node應用場景:

用戶表單收集
考試系統
聊天室
web論壇
圖文直播
應用程序須要處理大量併發的I/O項目

總而言之,NodeJS適合運用在高併發、I/O密集、少許業務邏輯的場景

相關文章
相關標籤/搜索