iT邦幫忙

0

請問明明同樣是是後端平台,為何 nodejs 可以幹掉其他語言、平台,成為前端的主流?

  • 分享至 

  • xImage

請問明明同樣是是後端平台,為何 nodejs 可以幹掉其他語言、平台,成為前端的主流?

它效能也不是最好、又是弱型別、還依靠很多坑的JS


這邊指的主流定義 :
目前 angular、react、vue 大多需要依靠 nodejs 生成 html5
這個動作其他語言平台也能做到,但就是 nodejs 成為主流

看更多先前的討論...收起先前的討論...
因為用JS
咖咖拉 iT邦好手 1 級 ‧ 2021-05-21 08:51:34 檢舉
你可能誤會了
現在大型購物網
有哪個是用純nodeJS寫的
大哥,幫幫忙好嘛,NODEJS 也是 JS,前端三大主流也是JS,你有能力就可以自己開發自己的前端語法,這十年來前端主流都是 JS,其他的都是衍生性語言,包刮JQUERY都是,你說JS很多坑,那是因為你總是用一堆別人寫好的JS套件來組織你的應用架構,所以才會覺得好像JS的坑你填不滿,那堆開發前端架構的人為什麼可以用JS開發出一套平台來,因為他們有能力把坑填滿,或是就算填不滿,用的人也感覺不出來,或是某些坑要發生特定條件才會產生,大概就這樣
小MIS iT邦研究生 1 級 ‧ 2021-05-21 08:59:43 檢舉
前端現在都用 nodejs 吧
還有用其它語言嗎?

我沒看過前端用除了 nodejs、js 外的平台
archer9080 iT邦研究生 4 級 ‧ 2021-05-21 09:00:17 檢舉
我只能ㄜ......
froce iT邦大師 1 級 ‧ 2021-05-21 09:06:01 檢舉
ㄜ...

1. 前端用JS的由來已久,從nescape就開始了。
2. node.js是因為chrome的js引擎很快,加上js原生支援異步編成,被拿來改成後端來使用

我會形容這個大概是張菲告張飛、岳飛侵犯他的商標權,科科。
前端從來不是node.js,前端是javascript。

> 我沒看過前端用除了 nodejs、js 外的平台
有看過VBscript嗎?科科
前端 用 NODEJS,幫幫忙那三大前端框架 A R V 你放在哪裡,當然這都是 JS 開發的框架,NODEJS 也是 JS 開發的框架,只是印象中他是後端在跑的,如果樓主搞不懂前端後端,那不要來討論前端用什麼框架,那都是廢話,因為樓主大概是全才行的,可以直接用 NODEJS 前後端一起寫,不用其他框架輔助開發
小MIS iT邦研究生 1 級 ‧ 2021-05-21 09:53:15 檢舉
三大前端框架 A R V,大部份也是依靠 nodejs 生成js啊 ...
您有寫過前端嗎
RayLiu iT邦新手 2 級 ‧ 2021-05-21 09:57:25 檢舉
這根本來反串的
node.js幹掉其他成為前端的主流??

我怎麼都沒看到這狀況,哪一家大公司用node.js ?
node.js 生成 js ?

是我誤會了什麼?還是真的是岳飛打張菲?
archer9080 iT邦研究生 4 級 ‧ 2021-05-21 10:21:51 檢舉
啥都不懂至少先看過維基百科的敘述 霸脫
node.js 跟 apache 、 iis 、 nginx ......... 這些同屬後端平台,至於前端,是放置在後端伺服器的網頁目錄下的所有 javascript css html media ...所組合而成,負責解釋這些檔案的是使用者的瀏覽器,而跟node.js幾乎沒什麼大關係,後端,就只是負責處理各種前端送來的requests,跟傳responses回前端,前端用什麼框架,後端平台幾乎不管,只要你request是POST或GET或其他協定好的指令就對了
Node.js
維基百科,自由的百科全書

Node.js 是能夠在伺服器端運行 JavaScript 的開放原始碼、跨平台執行環境。Node.js 由 OpenJS Foundation[4] (原為 Node.js Foundation,已與 JS Foundation 合併)持有和維護[5],亦為 Linux 基金會的專案[6]。Node.js 採用 Google 開發的 V8 執行程式碼,使用事件驅動、非阻塞和非同步輸入輸出模型等技術來提高效能,可優化應用程式的傳輸量和規模。這些技術通常用於資料密集的即時應用程式。

Node.js 大部分基本模組都用 JavaScript 語言編寫。在 Node.js 出現之前,JavaScript 通常作為使用者端程式設計語言使用,以JavaScript 寫出的程式常在使用者的瀏覽器上執行。Node.js 的出現使 JavaScript 也能用於伺服器端編程。Node.js 含有一系列內建模組,使得程式可以脫離 Apache HTTP Server 或 IIS,作為獨立伺服器執行。

目前,Node.js 已被IBM[7]、Microsoft[8][9]、Yahoo![10]、Walmart[11]、Groupon[12]、SAP[13]、LinkedIn[14][15]、Rakuten、PayPal[16][17]、Voxer[18]、GoDaddy[19]等企業採用。

老實說我沒寫過前端,因為我都是寫全端
後端框架排名 NODEJS 也不是第一啊,第一是 Python 耶
但是如果講全平台語言的話 JS 還是第一,
因為不管哪一套框架幾乎都是 JS 為基礎開發的,而新的語言很多都要參考JS
你說 NODEJS 產生JS,我真的不知道該說什麼,有人用 JS 開發出 NODEJS,當然 NODEJS 跟 JS 同家族,相互產生是很正常的事情,對JS 來說NODEJS只是JS的套件、框架、函式庫、介面、窗口等等等,當然可以相互利用,這很難理解嘛
就像apache/nginx老是跟php掛勾,iis跟asp.net膩在一起一樣,node.js只是選用了javascript當作後端語言,但這個僅限於後端運行,跟前端的javascript /.js框架,根本八竿子打不著

至於會用node.js的最大理由,無非是node.js的超強跨平台及超輕量程式碼就能運作的能力,幾乎所有OS都有node.js的存在,就連樹莓派、arduino都能使用,跟apache , iis 這些笨重的跟鬼一樣的平台,真的殺很大!
WIN10 裝了某些軟體之後就會發現node.js在後台跑了,然後系統會多出一些服務在監聽TCPIP PORT ,這就是後端運用,至於前端跑啥,你跑了軟體,他就會跟後端要資料,至於前端大部分也是用 JS 開發的,這是這幾年經常發生的,也讓IT人員提於奔命,打開TASKMGR,一堆NODEJS在後台跑,又不知道跑啥,只能花錢買L7的設備去抓問題,又是要一堆錢才能找出來,這也難怪他無法排第一,因為資安風險太大了
node.js 任何人都能做擴展模組放在npm上任人下載使用,就是這個特性,讓node.js的發展可能性迅速擴張,也是因為這個原因,出現了很多利用npm缺乏審查就能發布擴展的問題,衍生出一堆很可怕的狀況,簡單講,就是給你一個好用的工具,裡面埋了木馬病毒甚至使用到Meltdown與Spectre兩大CPU漏洞發動攻擊及資料盜用,這兩年有在更新後變的比較好一點,但就是怕還有一些不怕死的後端IT,打死不更新....

BTW,node.js很好用,但我不會選用在企業網站上,如果沒到非用不可,我寧可用php+python來解決各式各樣的問題
froce iT邦大師 1 級 ‧ 2021-05-21 11:24:08 檢舉
> node.js 任何人都能做擴展模組放在npm上任人下載使用,就是這個特性,讓node.js的發展可能性迅速擴張,也是因為這個原因,出現了很多利用npm缺乏審查就能發布擴展的問題,衍生出一堆很可怕的狀況......

這個...我會跟你說每個開源語言平台都會有這問題,要避免這問題,code review是有必要的。

node會流行主要的還是他可以用極少的資源達解決c10k問題,異步的設計讓單一執行序的效率高很多。

然後前端並不是靠node弄出來的,原本js只能在瀏覽器跑(前端),因為node的出現讓js能在後端跑,因此出現了像webpack之類的利用node當引擎來整理前端的工具而已。你不依靠webpack那些工具一樣能寫前端。

至於全用js能不能讓全端開發效率提高?至少我覺得切換在python和前端js之間比切換在node和前端js之間簡單,因為差異比較明顯,能很明顯的告訴我現在在做哪邊的事。

別再繼續張菲告張飛的白痴事了。
微笑 iT邦研究生 5 級 ‧ 2021-05-21 11:44:38 檢舉
尷尬
雷N iT邦研究生 1 級 ‧ 2021-05-21 13:55:34 檢舉
小弟覺得標題就矛盾了QQ
後端平台 -> 前端主流 ??
小MIS iT邦研究生 1 級 ‧ 2021-05-21 14:32:48 檢舉
前端主流不是使用 nodejs 這個後端平台生成 html5 嗎?
froce iT邦大師 1 級 ‧ 2021-05-21 15:33:27 檢舉
> 前端主流不是使用 nodejs 這個後端平台生成 html5 嗎?

所有人都跟你說不是了,你覺得呢?
HTML5不是生成的,而是人手下去編輯HTML檔,放在後端
哪來自動生成?
小MIS iT邦研究生 1 級 ‧ 2021-05-21 16:15:30 檢舉
那請問 angular , react 他們生成的是什麼?
通靈亡 iT邦高手 1 級 ‧ 2021-05-21 16:25:57 檢舉
用詞請精準一點,Node.js 本身並沒有提供網頁的產生與轉換,而是仰賴 Node.js 的第三方打包工具:Webpack。

所謂裝睡的難民是叫不醒的...
archer9080 iT邦研究生 4 級 ‧ 2021-05-21 16:50:19 檢舉
> nodejs 生成js
> nodejs 這個後端平台生成 html5

不好意思,冒昧猜一下
下一句是不是要接著
>nodejs 這個平台生成 css

也冒昧地請教一下,您依據的到底是甚麼呢?
「目前 angular、react、vue 大多需要依靠 nodejs 生成 html5」......
你是不是誤會太大了。
因為下NPM指令就是利用nodejs生成html5???

如通靈亡說的。nodejs只是負責運行命令而已。
且其生成的網頁,是依據pack類工具來處理。

我用的park命令,還可以執行nginx的東西、PHP的東西.....
這樣我是不是可以叫做 nodejs 就是nginx了?還是能代替PHP了。

你的技能跟知識觀念相差太大了啦。
自已認為就算了,不要誤導其它人。

這讓我想起了很早前的笑話。
「laravel是新時代的語言,完全可以取代PHP用」

希望說這個的不是你。
Todd iT邦新手 1 級 ‧ 2021-06-02 18:07:09 檢舉
node.js 就只是一個 js runtime
跟前端「開發環境」有關係
但與前端的「codebase」沒什麼關係

以react 的JSX為例
寫完的JSX 是經由「babel」 轉成 React. createElement()
然後再經由ReactDOM.render
最後在DOM tree上出現
以上都是 純 JS的事情
硬要說的話
就是最後一步 ReactDOM.render 將 element塞回去 DOM tree這塊
但是這是要等到 js 執行期間這些 element 才會出現在 DOM tree
這樣算轉成html5嗎? 我覺得是不太算啦
以上跟「node.js」沒有太大關係,因為都是用 js 在寫

有關聯的就是環境部分
像是:依賴於node.js 的 webpack(或者其他打包工具)裡在執行babel、
純前端服務的dev serve
lint指令等等
至於為什麼這個環境部分是用node
我猜想npm太方便、nodejs是用js開發如果只是要開發一個前端用的tool就用熟悉的語言開發即可。

而且如果我react 開發時完全不使用node.js的工具/環境
只在html裡引入react library的CDN
然後在JS那邊就頂多不能使用JSX
全部都用 createElement 最後再ReactDOM.render
最後也是可以動啊

回敬你一句話:「你真的有寫過前端?」
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
6
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2021-05-21 12:42:00
最佳解答

為何 nodejs 可以幹掉其他語言、平台,成為前端的主流?

什麼時候nodejs是前端了啊?
不要用自已錯誤的評論觀念來誤導。

不要認為掛個JS它就是前端。
完全不是好嘛?

nodejs只是使用的語法,跟javascript雷同。
真要說的話,它只是前端工程師的福音。

因為不需要學後端語言。只要前端語言的寫法就大略可以用了。
但相對的還是要有基本的後端應用知識。
且在其效能,應用上,還是會跟真正的後端語言相差很多。

最好它可以幹掉其它語言跟平台啦!!

非常錯誤的觀念

真的是前端工程師的福音。
前後端要戰的時候,前端比較能夠看得懂,降低前端陣亡的機率。

7
小魚
iT邦大師 1 級 ‧ 2021-05-21 08:54:30

原則上來說,
node.js不能算是前端,
然後,
你這說法有資料來源跟數據嗎?

每個語言都說自己是最強的語言,
那不就是最強的矛跟最強的盾嗎?

看更多先前的回應...收起先前的回應...
小MIS iT邦研究生 1 級 ‧ 2021-05-21 08:58:53 檢舉

前端現在都用 nodejs 吧
還有用其它語言嗎?

前端是不可能用nodejs的,因為瀏覽器根本沒有環境可以執行

小MIS iT邦研究生 1 級 ‧ 2021-05-21 09:55:48 檢舉

大多都是依靠 nodejs 生成前端

Han iT邦研究生 1 級 ‧ 2021-05-21 10:37:35 檢舉

頂多只是依靠webpack打包前端,不能說他是前端..

PPTaiwan iT邦好手 1 級 ‧ 2021-05-21 10:58:13 檢舉

大多都是依靠 nodejs 生成前端

誰跟你說 Nodejs 來生成前端的?? javascript 那裡來透過 Nodejs 來做這些事情?

去看看 維基百科 如何寫的 https://zh.wikipedia.org/wiki/Node.js

Node.js於 2009 年寫成,那 2009 年之前使用 javascript 的公司行號是見鬼的嗎??

JSON 格式是 1999 年出來,2001 年透過 Javascirpt 來進行資料的交換都己經成形,那時候 Node.js 連個影都沒有,我還不是用 .ASP 導出 JSON 來做處理了並透過 javascript 來做?? 那裡還會用到 Node.js 呢??

fillano iT邦超人 1 級 ‧ 2021-05-21 15:44:30 檢舉

其實應該這樣說:很多前端工具是用node.js為平台開發的。但這些是工具而已,前端的東西實際上是在瀏覽器在運行的。

另外,node.js是一個通用平台,提供了一個執行javascript的環境,用前後端來區分其實已經不太恰當。在node.js之前,其實也有類似的平台,只是用的人不多。

小MIS iT邦研究生 1 級 ‧ 2021-05-21 16:17:38 檢舉

是,fillano大神,我就是在討論這個
但他們一直說全端的事情...

現在前端工程師很少碰全端了

微笑 iT邦研究生 5 級 ‧ 2021-05-21 18:02:39 檢舉

先不討論別人的留言,你的文章通篇都是後端前端夾雜著說
自己定義了屬於後端的node.js為什麼會在前端被大量使用
也沒發現別人是在指出你的問題
最後來一句我不知道為什麼他們會一直討論全端,酷喔

微笑 iT邦研究生 5 級 ‧ 2021-05-21 18:09:57 檢舉

假設你是真的想問純前端的問題,我想你的問題應該是為什麼前端的javascript會成為主流語言,從一開始就跟node.js無關喔

froce iT邦大師 1 級 ‧ 2021-05-22 08:48:26 檢舉

然後前端並不是靠node弄出來的,原本js只能在瀏覽器跑(前端),因為node的出現讓js能在後端跑,因此出現了像webpack之類的利用node當引擎來整理前端的工具而已。你不依靠webpack那些工具一樣能寫前端。

這是我前面說的

是,fillano大神,我就是在討論這個
但他們一直說全端的事情...

我說的跟fillano說的一樣啊...是你根本就是看不懂在那邊亂。
其他人一直說的都是同一件事:node.js只是拿來整理前端的程式碼,並不是用來產生前端。
沒node.js也能搞前端,以前jQuery的時代webpack都還沒出來,你覺得那時候就沒人寫JS嗎?

小魚 iT邦大師 1 級 ‧ 2021-05-22 14:47:19 檢舉

話說,
前端一直都是 Html, JS, CSS
沒有變過喔.

那些東西都只是工具,
協助產生這三樣東西的工具.

意思是王者永遠都是那三位,
至於底下分封了誰不重要,
死了誰也不重要,
反正最後結果還是那三位.

如果要學前端,
也可以只學Html, JS 跟 CSS就好,
不管時代如何改變,
他們還是活得很好.
前端要學好也是需要把這三樣東西搞懂.
(即使要使用工具也是一樣)

(但是,
如果你是幫老闆作事,
或是客戶有要求,
對不起,
除非你不幹了,
要不然還是乖乖去學工具吧)

這......是來釣魚的吧?
不知道從何開始吐槽起。

小魚 iT邦大師 1 級 ‧ 2021-05-23 21:20:13 檢舉

那就從頭開始吧.

0
ckp6250
iT邦好手 1 級 ‧ 2021-05-21 09:52:59

使用者不會管您用什麼端?
他只要好用就行。

1
Samuel
iT邦好手 1 級 ‧ 2021-05-21 11:28:15

未來到明年過後當IE完全跟Flash一樣淘汰(June 15, 2022)
可能就會是微軟.net core Blazor方案取代js了
.net core Blazor跟NodeJs打對臺的
主張不用任何javascript全透過C#來達成前後端
預計明年等IE淘汰後會掀起一番Blazor框架的系統職缺可能會很多開始也要求會Blazor

The Internet Explorer 11 desktop application will be retired on June 15, 2022
https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/?WT.mc_id=DT-MVP-4015686&fbclid=IwAR2RfTjcZxYbKUG_DXHYZPEJTlf-P5ST9InWFtl-7RhByTXxFgi4FAUGjws

Blazor與JavaScript:誰是前端應用程式首選框
https://kknews.cc/zh-tw/code/n2lbg8q.html

Blazor VS JavaScript:Blazor 能否取代 JavaScript 成为 Web 开发的首选框架
https://juejin.cn/post/6873695385358073864

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2021-05-21 11:32:11 檢舉

這,我想你多慮了。

PPTaiwan iT邦好手 1 級 ‧ 2021-05-21 12:30:50 檢舉

真的是想太多,有些人不愛 Microsoft 生態還是活的很好。有很多技術生態己經長久下來成熟,Microsoft 看到問題又創新技術,技術生態就是如此,沒有什麼叫 誰能取代誰 ..

小魚 iT邦大師 1 級 ‧ 2021-05-22 14:54:02 檢舉

原來是軟軟教的

雖然我後端寫C# asp.net Core的,但我不認為Blazor可以直接取代js...這千年老妖,願意嘗試用的也不太可能佔多數

12
通靈亡
iT邦高手 1 級 ‧ 2021-05-21 13:16:39

你有很嚴重的錯誤觀念...

Node.js 不是前端,也不是語法,而是一個 Javascript 執行環境,在官方網站第一行寫得非常清楚:

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

而 V8 Javascript engine 是一個執行在「電腦上」的 Javascript 編譯環境,所以是屬於後端而非前端。

V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others. It implements ECMAScript and WebAssembly, and runs on Windows 7 or later, macOS 10.12+, and Linux systems that use x64, IA-32, ARM, or MIPS processors. V8 can run standalone, or can be embedded into any C++ application.

而你說前端開發的部分,是因為前端的開發環境,包含了需要執行在 Node.js 的工具,包括 npm 套件管理、Webpack。

最後,你寫前端,是不會呼叫 Node.js 提供的 API,所以「用 Node.js 寫前端」的說法是很不恰當的。

4
japhenchen
iT邦超人 1 級 ‧ 2021-05-21 13:19:11

古早古早......也有個vbscript,在javascript尚未成熟以前,是個蠻多人用在前端做腳本語言用,那時,asp的主語言,只有VB,而不是現在C#、VB、R#、F#甚至是其他有辦法轉IL的語言,都能跟隨ASP.NET參戰,再加上OFFICE的腳本一直以來都是VBA的天下,難道有人敢說,VB一統江山?

並沒有,現在(V)BASIC反倒成了繼flash/ie之後,可能的時代的眼淚(純個人觀點,打臉小力一點)

MS OFFICE也能用PYTHON或C#來做xxA了耶...這,可能還沒被公眾所知吧

BTW,多懂一個語言/平台,不會累死碼農啦

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2021-05-21 15:49:10 檢舉

其實vbscript同時,也有jscript。問題在於....早期msdn上,很多文件只寫給vbscript,看vbscript的文件寫jscript有點辛苦XD

昨天在Youtube看到微軟釋出的office script,開始為(V)BASIC的前景感到擔憂。

Yes

從之前重c#輕VB,到兩年用code、SQL與開源愈走愈近

VB的存在,應該只是為了維持現狀而已,堪用

至於不讓VB更加壯大,就很明顯

努力習慣這些C like語言,一堆分號與大括號。

小魚 iT邦大師 1 級 ‧ 2021-05-22 14:56:07 檢舉

Office不死, VB不滅 XD

0
khiav
iT邦見習生 ‧ 2021-05-22 05:59:21

這篇有很多的觀念問題

nodejs 是指後端 javascript 的運行環境,跟前端無關
不要把 nodejs 跟 javascript 混在一起

angular、react、vue 也不一定要靠後端生成 html
有空可以先去理解一下 server-rendering 和 client side rendering 的差別

至於 nodejs 是不是主流嘛...
只能說你再多學幾年,看看這個世界之後再來做判斷

0
Floralt 昀翰
iT邦新手 4 級 ‧ 2021-05-24 10:42:06

因為 JS 是秦始皇轉世

我要發表回答

立即登入回答