[請益] node.js問個很基礎的問題

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

Links booklink

Contact Us: admin [ a t ] ucptt.com