Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Q5. [個人技能題組][Backend] 架設 web 動態程式開發環境。 #6

Open
wildwindjen opened this issue Mar 15, 2017 · 12 comments

Comments

@wildwindjen
Copy link
Contributor

wildwindjen commented Mar 15, 2017

只有能夠寫程式,才稱得上動態。上一題只能放簡單的 html。身為一個後端,就得寫程式。現在開始架設可以寫程式的環境。如果你不熟悉,目前工作室比較多的資源是寫 javascript,也許 nodejs 是個起點。

a. 上一題跟這一題的靜態跟動態分別是什麼?
b. 你後來選擇哪一個語言跟哪一個環境?為什麼?
c. 你怎麼驗證你架設成功了?
d. 你克服了哪些問題?

提示:
nginx, apache, nodejs...etc。

答題時間: 8 hr

@dustfantasy
Copy link

dustfantasy commented Mar 30, 2017

「於 2017/03/30 開始答題」

a.
靜態
為固定不變的內容檔案,基本上就是顯示給客戶端單純用來觀看閱讀的作用。

動態
隨使用者動作而做出改變內容,會連結資料庫讀取資料寫入資料使網頁內容進行變動。

b.
node.js
由於事先從javascript學起,學起使用javascript運行的node會比較順手。
只需透過模組不需要其他web server即可架設伺服器。

c.
使用node執行程式可以在terminal上印出log訊息,透過印出指定訊息得知程式正常運行。
在網址輸入localhost:(port)確認設置訊息、網頁是否有出現。

d.
雖然說學習過javascript但一開始要如何使用node卻讓我摸不著頭緒。
查找網路上的範例都像是直接預設好懂的使用基本的node那樣,沒有解說res,req這些參數是作什麼,能做到什麼,是必須的嗎?諸如此類剛接觸的問題,結果只好先使用範例而後才能理解運行的架構。

「於 2017/03/30 答題結束」

@wildwindjen
Copy link
Contributor Author

@dustfantasy
所以可以從哪邊知道 res, req 在幹嘛的?

@dustfantasy
Copy link

dustfantasy commented Mar 31, 2017

最後我是在慢慢使用的過程自己做理解。
當初困惑我的大概是三點
1.req跟學到的請求看起來完全不同。
2.req,res這兩個參數到底如何使用。
3.req,res這兩個參數是必須存在的嗎。
  
1.
原先知道有請求和回應,明顯跟這裡的req,res對應,當初還以為req會是收到的原始請求,但實際將req印出卻是一大段數據。
其實這是請求經過處理轉變為物件的存在,請求的內容在收到時已被解析成物件的各個屬性。
2.
而node的模組也將需要的操作方法加入到兩個物件參數中,像是對於res這物件以setHeader方法可以設定header,write可以寫入送出回應內容,send……也就是說物件中已經包含可以操作、變更回應訊息屬性的方法,只需調用而已。
3.
由於node將訊息屬性方法都包含在req,res兩物件中,因此整個架構是建立在req,res兩者上的。

@dwatow
Copy link

dwatow commented Apr 3, 2017

「於 2017/04/03 開始答題」
a. 網頁的內容是依request條件不同、時間不同,而會顯示不同的資料。
b. python和Django,因為Linux內建python
c. 用Postman丟Request
d. 解完這一題,算是我克服的問題XD
「於 2017/04/03 答題結束」

@YenChunchen
Copy link

「於 2017/04/04 開始答題」
a. 靜態跟動態分別是什麼?
靜態:不會變動內容的檔案,像是圖片或html檔
動態:可以依操作改變內容的檔案,像是SQL資料表
b. 你後來選擇哪一個語言跟哪一個環境?為什麼?node.js因為開始是由前端開始學習的,有一點點使用javascript的經驗;node.js可以依照需求呼叫不同module使用;npm提供許多資源能夠學習參考
c. 你怎麼驗證你架設成功了? 使用postman發出請求看到和欲期相同的結果
d. 你克服了哪些問題?在不同JS檔中互相呼叫,了解modules exports跟exports function用法;呼叫靜態檔案時須要把存放位置的資料夾宣告為能讀取靜態檔案;什麼時候該用post或get;不能對同一個請求作兩次回應

@PenguinRun
Copy link

PenguinRun commented Apr 5, 2017

「於 2017/04/06 開始答題」

a. 上一題跟這一題的靜態跟動態分別是什麼?
c. 你怎麼驗證你架設成功了?
https://medium.com/@justinlee_78563/%E9%97%9C%E6%96%BCweb%E5%BE%8C%E7%AB%AF-2-%E6%80%8E%E9%BA%BC%E5%BB%BA%E7%AB%8B%E5%BE%8C%E7%AB%AF%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83-b564d3dc309c

b. 你後來選擇哪一個語言跟哪一個環境?為什麼?
nodejs

  • 選用nodejs是因為它的語法對於之前在學習寫JS的我來說親和力較高。

d. 你克服了哪些問題?

  • 如何同時間寫多篇blog
  • 然後歸納及分類blog內容。

「於 2017/04/06 答題結束」

@HoHow
Copy link

HoHow commented Apr 16, 2017

「於 2017/04/16 開始答題」
a. 上一題跟這一題的靜態跟動態分別是什麼?
靜態:單純顯示圖片與文字
動態:可以跟資料庫要資料
b. 你後來選擇哪一個語言跟哪一個環境?為什麼?
選擇了node.js和nginx
因為工作室的夥伴都是使用node.js就跟著使用,有使用上的問題也有人可以問
選擇nginx是因為一開始不知道哪個web Server好用,就選了這個使用
c. 你怎麼驗證你架設成功了?
利用postman針對寫好的route做請求,看頁面上是否有回傳資料
d. 你克服了哪些問題?
學會使用postman
簡單設定Server
答題時間: 8 hr
「於 2017/04/16 結束答題」

@alxtz
Copy link

alxtz commented May 26, 2017

「於 2017/05/26 開始答題」

a

靜態動態的差別就像是販賣機餐館

  • 靜態 server 做的事情很簡單,你給他一串網址
    http://alexBlog.com/myNudePicture.png

    靜態 server 需要硬碟裡面真的存有 myNudePicture.png
    而他要做的只有把這張圖片傳給你

    使用靜態 server 就像是販賣機,你要什麼檔案就直接叫檔名, server 不會多做其他動作,只是把檔案吐給你

    • 特性 : 簡單、只要架好就可以使用、要更新內容得要把檔案都換新、不會根據request的其他內容作出反應
  • 動態 server 做的事情不只是回傳檔案
    http://alexBlog.com/myNudeLife.html

    今天動態 server ,可以根據這個頁面,去資料庫抓所檔案來「加料」
    或是根據 request的內容(Ex.使用者帳號),來顯示不同的頁面

    甚至 myNudeLife.html 也不必要原本就存在硬碟裡面,我們可以用程式自己生成一份 html

    • 特性 : 可以使用程式語言來寫出任何你想要功能、不限於只是回傳檔案、使用template來更新網站內容
      (像餐館可以根據客人煮出任意的料理)

參考資料 : https://noahveltman.com/static-dynamic/

b

使用node.js,環境是自己的 mac

打算寫連上 localhost:9487/Alex

可以在網頁上顯示 Hello Alex

c

code : http://jsbin.com/becucojodo/edit?js,output

可以連上 localhost:9487/name 並顯示對應的訊息

lsof -i ':9487' 顯示是我架的 server

d

寫完之後發現沒有使用nginx(不知道是否需要)

打算使用 https://eladnava.com/binding-nodejs-port-80-using-nginx/
以nginx當作web server,把port:80導向我的node.js app

「於 2017/05/26 結束答題」

@wildwindjen
Copy link
Contributor Author

@alxtz
「寫完之後發現沒有使用nginx(不知道是否需要)」
去問問工作室有經驗的人對這件事情的看法如何

@TengLee888
Copy link

TengLee888 commented Dec 1, 2017

「於 2017/11/30 開始答題」

a靜態跟動態分別是什麼?

  • 靜態為內容不變的網頁,每次看都一樣,怎麼看都一樣,每個人看都一樣;動態則可以讓使用者發出請求,向server要哪些資料,所以網頁變得可以跟使用者互動,內容是動態的所以稱動態(我猜啦)。
  • 另外動態也可以依據使用者呈現不同內容,比如說1000筆資料呈現20筆,可以依據使用者喜好、族群來決定要吐哪20筆資料給使用者
  • 差別就在server有沒有跟client互動

b. 你後來選擇哪一個語言跟哪一個環境?為什麼?

  • node.js。因為工作室有人有在寫node,加上我本來就有寫js,比起php直接用node js比較容易上手。雖然也玩過python一下下,但python專長用在數據分析,和我的創業項目不符,故不用。

c. 你怎麼驗證你架設成功了?

  • 更改url,當作是發出不一樣得請求,server就根據這些請求做出不一樣的回應
  • 在localhost後面分別輸入 start, teng, what, 得到的結果如下:

screen shot 2017-12-01 at 1 11 38 pm


screen shot 2017-12-01 at 1 14 54 pm


screen shot 2017-12-01 at 1 12 07 pm

d. 你克服了哪些問題?

  • 知道動態和靜態網頁的差別並且實作出來

「於 2017/12/01 結束答題」

@godlike0108
Copy link

[於 2018/01/22 開始答題]

a. 靜態網頁和動態網頁

靜態網頁所呈現的內容皆是透過 HTML 格式所預先編寫的。動態網頁的組件是透過程式碼動態生成的,可能因為參數的變換而直接改變呈現內容。伺服器端的動態網頁是藉由編寫伺服器端的程式碼來控制呈現的網頁。

b. 選擇語言與環境

Javascript & Node.js,因為JS有寫過,希望較好上手。

c. 如何驗證伺服器架設成功?

動態伺服器架設成功,只要驗證伺服器是否能根據不同的 request 發送不同的回應就好。例如我預先設定好當 request 請求不同路徑的資料時,用不同的函式來處理請求並回傳不同資訊。接著用瀏覽器發送對於不同路徑的請求,看是否會有不同回應,便能知道是否架設成功。

d. 克服的問題

  1. 使用 node.js 開個伺服器
  2. 寫出路由將需求導向不同的處理程序
  3. 對不同的路由寫出不同的處理程序回應
  4. 了解 exports require module 的使用方式

[於 2018/01/24 結束答題,原因是搜集了其他想知道的資訊]

@qscgyujm
Copy link

Web 平台2

a. 上一題跟這一題的靜態跟動態分別是什麼?

靜態:

以網頁為例,靜態頁面為網頁是被寫死的,任何資料都是被固定寫在網頁中,無法讓使用者透過互動來達到取得資訊。

動態:

以網頁為例,動態頁面是說使用者可以透過網頁,做到互動的效果,以youtube的頁面會隨著使用者的喜好去呈現推薦的影片。若為靜態頁面會發現youtube每次登入都是一成不變的。

b. 你後來選擇哪一個語言跟哪一個環境?為什麼?

目前在學習js,因此以node.js來作為後端開發。

c. 你怎麼驗證你架設成功了?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants