[爆卦]Node JS Express 是什麼是什麼?優點缺點精華區懶人包

為什麼這篇Node JS Express 是什麼鄉民發文收入到精華區:因為在Node JS Express 是什麼這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者sec5566 (sec)看板Soft_Job標題[請益] node.js問個很基礎的問題時間T...



從入行到現在知道有這個框架,
看過一些介紹,
但是沒真正用過,
就知道他是寫js的環境,
那問題來了,平常寫網頁,
打上<script>不是就可以寫了,
為何需要用node.js?
或是直接副檔名js,
引入html在瀏覽器上跑不就好了?


突然好像有點想通了,
node.js是不是直接把js當後端來用,
就是像php這樣,
我之前是一直卡在js是前端語言的觀念,
一開始我就是前js後php,
所以一直覺得很奇怪,
我這樣理解對嗎?
-----
Sent from JPTT on my Sony H4331.

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.203.218
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1536659211.A.C90.html
※ 編輯: sec5566 (223.140.203.218), 09/11/2018 17:47:14
deray: 一百分!超過一百分!09/11 17:51
stevekevin10: 你入行了?09/11 17:51
highland: 先幫補血09/11 17:52
我知道超基本的一定被噓,
但是我真的不知道和想知道捏,
一直都寫php跟html從來沒用過這個
※ 編輯: sec5566 (223.140.203.218), 09/11/2018 17:54:35
Severus5566: 樓樓上超酸09/11 17:53
deray: Q. 要如何在沒有瀏覽器的環境執行javascript?09/11 17:56
node.js? 可是開發web怎麼會沒瀏覽器?
※ 編輯: sec5566 (223.140.203.218), 09/11/2018 17:58:32
alog: 你大概要先把人家語言發展的歷史摸清楚再來問會比較合適 09/11 18:00
alog: 然後以現在的情況來說 就算你不用 nodejs 你用的軟體底層一 09/11 18:00
alog: 部分的實做就是要nodejs或自帶相關引擎 09/11 18:00
ij1001: Nodejs 是運作在伺服器端,是處理收發請求的,跟客戶端拿 09/11 18:00
ij1001: 來瀏覽,兩者運作所使用的情境是不同的。即便是用同樣的語 09/11 18:00
ij1001: 言,但聊的事情講的內容是不一樣~ 09/11 18:00
alog: 你要用的開發工具可能有一部分要從nodejs的npm去裝 09/11 18:01
alongalone: 戰起來 站起來 09/11 18:03
lk2986706we: 你的瀏覽器會直接連資料庫嗎 09/11 18:12
alihue: 這種問題在 stackoverflow 應該是 -1000 等級 09/11 18:31
peanut97: nodejs 是後端語言,跟PHP 一樣層級 09/11 18:31
windclara: 原來您的瀏覽器自帶所有功能 都不用GET跟POST了呢 09/11 18:48
kroutony: 在你開始寫程式之前,建議先了解前端跟後端的分別 09/11 18:54
kroutony: 以及他們是如何交流的 09/11 18:55
fukinhot: 其實嚴格來說nodejs 就是包了一個瀏覽器 讓我們能夠像 09/11 19:49
fukinhot: 是在執行console app一樣執行js 09/11 19:49
fukinhot: 樓上各位都太兇了 我反而覺得不懂但不好意思問的人比較 09/11 19:51
fukinhot: 慘 09/11 19:51
fukinhot: 而且感覺樓上有人直接把nodejs == express / koa了? 09/11 19:53
abc01251: 大家不要這樣..當初各位入行一定也問過蠢問題,也被前 09/11 20:01
abc01251: 輩酸!不過大家當年一定不希望被這樣對待,現在也不要 09/11 20:01
abc01251: 扼殺幼苗吧! 09/11 20:01
alihue: 知道會被噓還不自己先玩過再來問 09/11 20:06
mdkn35: Id後面有5566應該是老人 怎可能還會問這種問題...... 09/11 20:12
longlongint: 用 nodejs 就可以不用學 php (誤 09/11 20:13
longlongint: nodejs > python > php > cgi (誤 09/11 20:13
longlongint: 戰起來 戰起來 09/11 20:13
vi000246: 下一篇 為什麼python不能在瀏覽器執行 09/11 20:24
FrozenMoment: go go go! 09/11 20:38
yuigahamayui: 可憐,這種也稱自己入行 09/11 20:49
x000032001: golang > 其他 09/11 20:52
DirtyVegas: 有勇氣給推 09/11 20:59
diabloevagto: Node 包了瀏覽器???差太多了啊...... 09/11 21:05
godddddd: 因為作者把v8拿來用 包成node.exe 09/11 21:08
godddddd: 接著node js檔案就能自動直譯js語言 產生想要的東西 09/11 21:09
godddddd: Express koa是專門寫後端常見的npn module 09/11 21:10
godddddd: 然後有一堆的middle ware 可以處理類似java 攔截器過濾 09/11 21:10
godddddd: 器功能 09/11 21:10
godddddd: 大概是這樣 很久沒碰 可能有錯 09/11 21:11
evilcherry: 人家很明顯就沒碰過backend... 09/11 21:17
littlethe: 大家別酸他嗎,人都有剛開始什麼都不懂的時候ㄚ,應該 09/11 21:19
littlethe: 要多鼓勵新人 09/11 21:19
jackace: 其實推文裡也一堆人觀念有問題 不曉得是不是反串 09/11 21:28
nekosgr93: 所以nodejs到底是語言?框架?complier?越講越亂了 09/11 21:49
evilcherry: Runtime 09/11 21:56
alog: Nodejs就是一整套的程式執行環境,帶著google v8引擎跟自己 09/11 21:58
alog: 兜的模組來執行所有程式設計師寫好的js腳本,可以用你最熟悉 09/11 21:58
alog: 的js語言來寫有關伺服器/服務應用、CLI工具等各種玩意,在ja 09/11 21:58
alog: vascript有很重要的地位 09/11 21:58
alog: 早期開發者都因為他的架構特性可以達到較高併發跟執行效率吸 09/11 22:00
alog: 引,拿來寫web有一部分都是為了應付大流量時操作運送、同時 09/11 22:00
alog: 在線的需求 09/11 22:00
alog: V8的regular express引擎寫的也很好寫parser速度有時候還比g 09/11 22:02
alog: olang的還快 09/11 22:02
alog: 但老實說 你說一定要用nodejs寫web 用啊 完全看你的需求跟工 09/11 22:05
alog: 時、現有熟悉的資源 用別的語言跟工具環境都一樣有解 09/11 22:05
alog: 不用* 09/11 22:06
alog: 只是以現今來說 你就算不用nodejs 做後端的資料處理,但你 09/11 22:10
alog: 還是可以享有nodejs社群開發的出來的成果,很多工具你都可以 09/11 22:10
alog: 用nodejs裡的npm裝一裝拿起來用 就例如你要寫個vuejs還是要 09/11 22:10
alog: 透過npm裝 包括其他語言的框架裡要執行某些東西處理也是會ca 09/11 22:10
alog: ll nodejs來做 而不是用該語言再重造輪子 09/11 22:10
alog: nodejs 可以寫的東西很多 開發者累計起來的資源也不少 可以 09/11 22:16
alog: 不用當只是拿來寫web工具去看待他 09/11 22:16
senjor: 當成C#或者python之類的去看待他就好了 09/11 22:20
FF16: 在寫網頁上,nodejs的角色比較像是編譯器,他其實是把一堆 09/11 22:20
FF16: javascript編譯成javascript 09/11 22:21
menshuei: 等等你真的把js寫在script標籤裡? 09/11 22:25
ku399999: 一句話:node可以做瀏覽器做不到的事 09/11 22:47
u1240976: nodejs 不是包瀏覽器啦XD, HTML/CSS/DOM 都要哭了QQ 09/11 22:53
u1240976: nodejs/browser js的差異,大概就像desktop/android java 09/11 22:57
Souseasou3: 哪間?這樣還入行 09/11 22:58
a2551127: 幫幼苗補血 09/11 23:07
sharku: 讚喔 09/11 23:09
XXXXLAY: 老人不能學nodejs哦?QQ 09/12 00:16
vencil: 這種東西不是google就知道了? 這樣敢說入行... 09/12 00:42
TitanEric: 這樣算入行 厲害了 09/12 00:48
crazwade: 真的建議你去google... 雖然我也不太懂 但有寫過一些 09/12 01:15
cha122977: 沒網頁時你怎麼用js寫程式?nodejs就提供這個功能啦 09/12 01:35
dnabossking: alog說的大至上都正確 09/12 02:04
dnabossking: 看alog說的就好 09/12 02:05
nekosgr93: nodejs也可以拿來寫桌面應用吧 像現在很紅的vscode和 09/12 02:56
nekosgr93: 之前的atom 09/12 02:56
stormcorn: 怎麼都不先查基本資訊的 09/12 04:28
UniFish: 原po的問題需要的答案明明很簡單,為何推文各種繞彎XDDD 09/12 08:20
async: 不了解可以學一下看看,我也是學了一下就解惑了 09/12 09:19
FF16: UniFish 原po問的問題其實很難回答,因為你可以從他問的問題 09/12 09:49
FF16: 看出他缺乏某些基本觀念,所以如果想回答他,那得先講解基本 09/12 09:49
FF16: 觀念。 09/12 09:49
flowwinds: 先看看nodejs的wiki.. 09/12 10:33
singergod: google 一下馬上知道的東西,這樣自稱入行? 09/12 10:37
YukiTW: 他還有無網頁的應用,我最近就做一個側錄網路封包的功能 09/12 11:37
YukiTW: 就用到 node.js 09/12 11:37
youuuuuli: 笑。厲害 09/12 12:39
Masakiad: 不知道在冷嘲熱諷什麼,原po也沒說自己多senior,也自 09/12 13:20
Masakiad: 知問題很蠢,但有問想知道答案應該鼓勵而不是這樣笑他吧 09/12 13:20
alihue: 問問題前先「嘗試、找資料」是軟工基本素養。要問也是自己 09/12 13:54
alihue: 玩過,再問卡住不解的地方。這種大哉問就是欠噓,被噓也是 09/12 13:54
alihue: 寫程式的必經之路 09/12 13:54
vi000246: 是啊 這問題在stack overflow大概會被噓爆09/12 14:19
devil115789: Node.js是一個能夠在伺服器端運行JavaScript的開放09/12 14:28
devil115789: 原始碼、跨平台JavaScript 執行環境。09/12 14:28
devil115789: 他不是一個檔案名稱叫node副檔名為js的檔案09/12 14:28
devil115789: 執行環境,不是開發環境09/12 14:29
Jasonnor: https://i.imgur.com/85K4bMk.png09/12 16:30
benson1212: 推薦你一個東西叫維基百科 很棒快學起來 科科09/12 17:32
其實維基的我看了無數次,
包括也上it邦找過,
最後只知道他可以寫js或是介紹怎麼寫語法,
可是沒有人講為何不直接寫在網頁上就好
brianhsu: 先搞懂你的程式碼是在哪台機器上執行的(client side / s09/12 17:39
brianhsu: erver side) 應該就不會有這個問題了。09/12 17:39
※ 編輯: sec5566 (223.140.203.218), 09/12/2018 17:51:52
※ 編輯: sec5566 (223.140.203.218), 09/12/2018 18:14:53
deray: 這不噓一下不行 「沒有人講為什麼不寫在網頁就好」09/12 19:13
wanderchang: 又一個被browserify慣壞的09/12 19:31
kurtsgm: 我覺得你好像搞不太清楚前後端的差異捏...09/12 19:33
前端就類似餐廳裡的點菜櫃檯,
是使用者看到的,
後端就是內場的廚師這樣,
是功能面的
johsin605: 不忍噓09/12 19:58
lion0208: nodejs 不是跑在瀏覽器的,只是語言是 javascript,現09/12 20:27
lion0208: 在 javascript 可以跑在非常多地方,不是只在瀏覽器了09/12 20:27
art1: 可能不是本科畢業的,對於電腦的基礎知識不了解09/12 21:39
我不是資訊系的
longlyeagle: .09/12 22:16
BignoZe: 敢上來問贏過很多人了 加油09/12 22:21
nekosgr93: 其實剛入門去查定義真的有看沒有懂 像那個api去看維基09/12 23:22
nekosgr93: 根本不知道在工三小 如果沒有讀文件的能力就更慘了09/12 23:22
alog: 如果你只是想問「為何不直接寫在網頁就好」09/12 23:36
alog: 那麼我可以直接回答你,大多半的主因,是現在你接觸到的專案09/12 23:36
alog: 不需要這個東西,又或者是你已經在用了,但是軟體工具已經包09/12 23:36
alog: 得很好,你沒有感覺。09/12 23:36
alog: 以一般寫網頁入門或是維護舊系統來說,假設後端語言是 php,09/12 23:37
alog: 那麼搭配的前端一定是傳統 js 最多搭上 jquery 足以使用。09/12 23:37
alog: 通常程式寫是能上多少 script tag 就上多少 tag09/12 23:37
alog: 反正需要引入什麼就用什麼,沒問題啊,妥妥的。09/12 23:37
alog: 但是如果你今天的需求是一個複雜的前端,動不動就有上百個09/12 23:37
alog: javascript 檔案合在一起09/12 23:37
alog: 請問您是要重整理你的 javascript 程式碼的架構,還是繼09/12 23:37
alog: 續維護這些複雜的東西呢? 09/12 23:38
alog: 當然我們可以選擇,繼續使用一般的使用方式繼續寫下去,然 09/12 23:38
alog: 後就是反正問題出現在說 09/12 23:38
alog: 但如果每一次需求會不同,或是未來還要加東西處理,例如要 09/12 23:38
alog: 對你的 source code 做 minimize 或 obfuscate、 09/12 23:38
alog: 使用別人的使用者介面的框架來方便開發 (vuejs/reactjs)、 09/12 23:38
alog: 導入單元測試、或是用其他的語法 ( 如: coffeescript、 09/12 23:38
alog: 更新的 ecma script 版本 ) 來寫 javascript 等各種需要 09/12 23:39
alog: 是必須要有一個工具、轉換器來處理資料這些資料 09/12 23:39
alog: 像是做前端打包可能會用到 webpack 因為有些專案的複雜程度 09/12 23:39
alog: 超出你的想像,或是有別的考量,都需要一個好的工具、環境 09/12 23:39
alog: 或許你還是有一個疑問,就是我真的也不需要這麼複雜啊 09/12 23:40
alog: js 我還是可以照傳統的方式寫 09/12 23:40
alog: 那麼就講一個比較容易懂的,今天有一個玩意叫做 scss 09/12 23:40
alog: 它可以方便你開發跟撰寫 css 內容,再搭配其他的東西來 09/12 23:40
alog: 整合、壓縮、或是其他處理 ( like autoprefixer ) 09/12 23:41
alog: 以前有一個東西叫 compass app 09/12 23:41
alog: 也有一個東西叫做 middleman 他們都可做到 09/12 23:41
alog: 但是如果我在純 javascript 環境, 09/12 23:41
alog: 有沒有現成的工具讓我編譯處理,有,而且很多 就現在很多 09/12 23:41
alog: 多到你不知道用哪一個的狀況 09/12 23:41
alog: 在這些新穎技術的發展中,nodejs 提供了很多開發者的未來跟 09/12 23:41
alog: 可能,這套環境讓別人、你、我們可用最熟悉的工具來做,很多09/12 23:42
alog: javascript 知名的 library 可能都是 nodejs 的環境09/12 23:42
alog: 來開發的程式,以便好安排架構、做編譯,細心的團隊還會加上09/12 23:42
alog: 測試確保在長期維護下品質穩定09/12 23:42
alog: 你說這麼好用的工具跟環境架構,怎麼不會有人利用跟開發耕耘09/12 23:43
alog: 他本質就不是用來寫在網頁上的,已經說了這是程式的執行環境09/12 23:43
alog: 做 web 後端只是當初開發歷史發展下的一個產物,09/12 23:43
alog: 現今的這個 nodejs 早就在很多開發上無所不在,09/12 23:43
alog: 包括現在用的 vscode、atom 是 github 的 electron 專案09/12 23:43
alog: ( chromium + nodejs ) 延伸出來的,09/12 23:44
nekosgr93: 推 搞不懂在幹嘛可能是現在沒需求 等用到了就自然懂了09/12 23:47
alog: 原PO安捏你剛災,其實我也很難解釋這東西的用途,我盡量了。09/12 23:47
反覆看了統整意思是,
js不一定只能用在網站上,
而且node.js提供一個很好的環境去跑js這樣吧?
v9290026: 推alog好心大大09/13 00:06
a8084123: 推alog大解說09/13 02:45
※ 編輯: sec5566 (223.140.203.218), 09/13/2018 09:16:36
ken90242: 還好啦 釐清疑惑也不賴09/13 09:26
EightXD: 這個是我剛入行並碰Web相關第一個月搞不清楚的問題09/13 12:27
for5566: 是誰你不是不懂後端,連網頁前端都沒搞懂,別碰nodeJS了09/13 13:42
for5566: ,先把瀏覽器架構這前端基礎搞懂再說吧09/13 13:42
那你要不要說哪裡有錯,
我又查看一遍前後端的資料,
不覺得我理解的哪裡有錯
※ 編輯: sec5566 (223.140.203.218), 09/13/2018 13:59:02
lturtsamuel: search the fucking giogle 09/13 18:46
lachtchlee: 簡單補一句 在Node.js裡 沒有DOM給你玩 沒html 沒css 09/13 20:32
evilcherry: 總覺得以前端三寶和PHP接觸編程的很難明白一些概念 09/14 13:06
kurtsgm: 你第二段那樣就沒錯了 nodejs要當作跟php類似的東西 09/14 20:30
kurtsgm: 你以前是前js後php 現在就是前js 後js 但兩個依舊分開跑 09/14 20:30
typepeter: 瀏覽器可以開server給別人連嗎? 09/16 09:33
typepeter: 可以是可以 比nodejs吃資源 09/16 09:33
typepeter: 瀏覽器可以讀檔案嗎? 09/16 09:33
typepeter: 如果不是使用者主動操作是完全不能用程式操作的喔 09/16 09:33
typepeter: 基本上想用瀏覽器作後端幾乎什麼都很難作 09/16 09:33
typepeter: 又吃資源 再者和底層幾乎無法整合 09/16 09:33
typepeter: 你可以試試用瀏覽器寫一個後端 09/16 09:33
typepeter: 寫到最後你會想要打爛電腦 09/16 09:33
potatososo: 推 09/17 21:48
lineage0916: A大真的好心,有時候對人要仁慈一點,也許妳自己當 09/20 23:04
lineage0916: 初新手時也被人這樣酸過,而且你的感受一定也不可能 09/20 23:04
lineage0916: 會爽,但用這種方式對待別人,你的心態也或成跟當初 09/20 23:04
lineage0916: 酸你的人一樣囉? 09/20 23:04
s106667: 現在js一條龍 大前端時代 03/26 20:46
s106667: js可以做太多事情了 03/28 00:55

你可能也想看看

搜尋相關網站