###### tags: `Node.js` # Node.js 簡單的傳值練習 ★以下各檔案皆是分開做簡單練習,皆可獨立運作,非需要互相調用的關係★ 1.建立專案資料夾 2.利用CMD進入到該資料夾內,輸入指令 npm init 3.依照指示填入對應資料 ![](https://i.imgur.com/AMQkzeJ.png) 4.填入完成後,產生package.json 5.安裝express,在資料夾內輸入指令 npm install express --save 以上完成Node.js的express的套件安裝 # 建立Web Server app.js ```node.js= var express = require('express'); var app = express(); var server = app.listen(5050,function(){ console.log('Node Server is running...'); }); ``` 利用express啟動server # 設定路由 epserver.js ```node.js= var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send("<html><body><h1>Hello World</h1></body></html>"); }); app.post('/submit-data', function (req, res) { res.send('POST Request'); }); app.put('/update-data', function (req, res) { res.send('PUT Request'); }); app.delete('/delete-data', function (req, res) { res.send('DELETE Request'); }); var server = app.listen(5000, function () { console.log('Node server is running..'); }); ``` | Html | Node.js | | -------- | -------- | | GET | app.get() | | POST | app.post() | | PUT | app.put() | | DELETE | app.delete()| 利用Node.js中的這些函式來定義Html中的路由請求。 回傳函式參數則包含request, response兩個物件, 執行這些請求時,函式有所作用。 以上為設定路由範例!!! # 撰寫路由 ★安裝**body-parser** 輸入指令 **npm install body-parser –save** 這個模組的功能是用來解析JSON, buffer, 字串, 及 HTTP Post 請求提交的url 編碼資料。 postapp.js ```node.js var express = require('express'); var app = express(); var bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({ extended: false })); app.get('/', function (req, res) { res.sendFile(__dirname+'/index.html'); //回應靜態文件 }); app.post('/submit-student-data', function (req, res) { var name = req.body.firstName + ' ' + req.body.lastName; res.send(name + ' Submitted Successfully!'); }); var server = app.listen(5000, function () { console.log('Node server is running..'); }); ``` 注意!在這例子中,app.get()裡的回傳函式,我們要以物件 res 回應一個 “靜態文件“,也就是我們另外新增好的 index.html,它必須用絕對路徑,所以,我們加了 __dirname,它是node.js關鍵字,用來返回目前這個.js檔的絕對路徑,後面附上 /檔名 ![](https://i.imgur.com/LyPLRne.png)