iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

NodeJS with MongoDB專案開發系列 第 29

day 29 node.js with mongo db

  • 分享至 

  • xImage
  •  

行動裝置預購飲料系統

現代人工作忙碌因此都需要一杯咖啡來提神,但有時候買咖啡需要排隊浪費許多時間,因此如果行動裝置上如果可以提早買咖啡並且付款完成是相當方便的,因此我寫了一個行動裝置預購飲料系統
以下是一個使用Node.js和MongoDB建立預訂飲料系統的示例程式碼

// 步驟1: 導入相依套件和設定基本配置
const express = require('express');
const mongoose = require('mongoose');
const app = express();

// 連接到MongoDB
mongoose.connect('mongodb://localhost/drink_system', { useNewUrlParser: true, useUnifiedTopology: true });
mongoose.connection.on('error', console.error);

// 其他設定和中間件
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// 步驟2: 創建資料庫模型
const drinkSchema = new mongoose.Schema({
  name: String,
  description: String,
  price: Number,
});
const Drink = mongoose.model('Drink', drinkSchema);

// 步驟3: 創建新飲料
app.post('/drinks', async (req, res) => {
  try {
    const { name, description, price } = req.body;
    const newDrink = new Drink({ name, description, price });
    await newDrink.save();
    res.json(newDrink);
  } catch (err) {
    res.status(500).json({ error: '創建飲料時發生錯誤' });
  }
});

// 步驟4: 獲取所有飲料
app.get('/drinks', async (req, res) => {
  try {
    const drinks = await Drink.find();
    res.json(drinks);
  } catch (err) {
    res.status(500).json({ error: '獲取飲料時發生錯誤' });
  }
});

// 步驟5: 啟動伺服器
const PORT = 3000;
app.listen(PORT, () => {
  console.log(`伺服器正在端口 ${PORT} 上運行`);
});

以下是對程式的解釋:

  1. 導入相依套件和設定基本配置:首先,我導入了必要的套件,包括Express和Mongoose。接著,我建立了一個Express應用程式的實例,這將用於處理HTTP請求和建立路由。

  2. 連接到MongoDB:使用Mongoose套件,我們建立了與MongoDB資料庫的連接。在這裡,我們指定了MongoDB的連接字串,告訴Mongoose使用哪個資料庫。如果連接出現錯誤,我們透過mongoose.connection.on('error', console.error);來處理錯誤。

  3. 其他設定和中間件:在這一部分,我設定了Express應用程式的一些基本設定。我使用express.json()中間件來解析JSON格式的請求主體,以便能夠處理來自客戶端的JSON數據。同樣,express.urlencoded({ extended: true })中間件用於解析URL編碼的數據。

  4. 創建資料庫模型:這裡我使用Mongoose定義了一個名為Drink的MongoDB模型。模型的結構定義在drinkSchema中,包括name(名稱)、description(描述)和price(價格)等字段。

  5. 創建新飲料:這是一個處理POST請求的路由。當客戶端發送POST請求時,我在這裡處理創建新飲料的操作。我從請求的主體中提取namedescriptionprice,然後使用這些數據創建一個新的Drink實例。接著,我使用await newDrink.save();將新飲料保存到MongoDB中,最後,我將新飲料作為JSON回應返回給客戶端。如果出現錯誤,我會返回HTTP 500錯誤回應。

  6. 獲取所有飲料:這是一個處理GET請求的路由。當客戶端發送GET請求時,我在這裡處理獲取所有飲料的操作。我使用await Drink.find();從MongoDB中檢索所有飲料的信息,然後將它們作為JSON回應返回給客戶端。如果出現錯誤,我會返回HTTP 500錯誤回應。

  7. 啟動伺服器:最後,我指定伺服器將在端口3000上監聽來自客戶端的請求。當伺服器成功啟動時,我會在控制台上輸出一條消息,以指示伺服器已經運行並聆聽端口3000。

這個程式示範了如何使用Node.js和MongoDB建立一個簡單的預訂飲料系統,包括飲料的創建和檢索。你可以根據這個基本框架擴展功能,例如加入用戶驗證、購物車、訂單處理等,以滿足你的實際需求。


上一篇
day 28 node.js with mongo db專案開發
下一篇
day 30 Node.js with Mongo DB專案開發
系列文
NodeJS with MongoDB專案開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言