0%

Node.js Express 創建伺服器

前言

研究如何創建伺服器
之後要來讀取mongo DB資料庫

Back-end

創建一個伺服器server

創建前需要初始化 package.jason 文件

1
npm init
1
2
3
4
5
6
7
8
9
package name: (shorturl) short-url-server
version: (1.0.0)
description: MERN-short-url
entry point: (index.js) server.js //入口文件
test command:
git repository:
keywords:
author: msonline
license: (ISC)

弄好後會有 剛剛的訊息再 package.json 文件內

接下來 安裝express框架

1
npm i express

然後可以先創建一個Backend 的資料夾

裡面放server.js 入口文件檔案

在新增一個Data的資料夾準備放資料庫的文件檔案

Untitled

接下來 來到server.js 來連接服務器

需要先引入express框架

1
2
3
4
5
6
7
8
9
10
//  ./data/product.js
確認內部為

module.exports=products

而不是

export default products

不然會有錯
1
2
3
4
5
6
7
//  server.js 
const express =require('express')
const products =require('./data/products')

const app =express()

app.listen(5000,console.log('伺服器已經在5000 port運行中...'))

然後在小黑窗輸入

1
node backend/server

就會顯示

Untitled

但是目前還沒創建路由

所以還沒畫面顯示

為了使用更方便

回到package.json檔案修改 script

1
2
3
4
5
6
7
8
9
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},

// 修改為常用的start

"scripts": {
"start": "node backend/server"
},

回到server.js

1
2
3
4
app.get('/',(req,res)=>{
res.send('服務器已經運行...')
})

新增文字測試 是否可以運行伺服器

新增完後,重新輸入 npm start

即可得到下面畫面

Untitled

新增 獲取資料的語法

1
2
3
4
5
6
7
8
9
10
11

//所有產品 url輸入/api/products 可以得到
app.get('/api/products',(req,res)=>{
res.json(products)
})

//單個產品
app.get('/api/products/:id',(req,res)=>{
const product =products.find(product=> product._id === req.params.id)
res.json(product)
})

在URL 輸入

1
http://localhost:5000/api/products/1

能得到所有產品

後面加/1

1
http://localhost:5000/api/products/1

能得到id =1的產品

你的支持是我活力的來源 :)