---
# System prepended metadata

title: Node.js 簡單的傳值練習
tags: [Node.js]

---

###### 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)
