現代韓團流行全世界,因此一票難求,所以我們需要寫一個搶票系統,下面是用javascript寫的程式
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
const availableTickets = 10; // 初始可用票數
const tickets = Array(availableTickets).fill(true); // 表示可用票的陣列
// 購票路由
app.post('/buy-ticket', (req, res) => {
const { numTickets } = req.body;
if (!numTickets || numTickets <= 0) {
return res.status(400).json({ error: '請提供有效的票數' });
}
const purchasedTickets = [];
for (let i = 0; i < numTickets; i++) {
const index = tickets.indexOf(true);
if (index === -1) {
return res.status(400).json({ error: '票已售罄' });
}
tickets[index] = false;
purchasedTickets.push(index);
}
return res.status(200).json({ message: '購票成功', purchasedTickets });
});
// 查詢可用票數路由
app.get('/available-tickets', (req, res) => {
const numAvailableTickets = tickets.filter((ticket) => ticket === true).length;
res.status(200).json({ availableTickets: numAvailableTickets });
});
app.listen(port, () => {
console.log(`搶票系統運行在 http://localhost:${port}`);
});
我使用了Node.js的Express框架來建立Web應用程序。這個應用程序運行在3000端口。
我初始化了一個名為tickets
的陣列,表示可用的票。初始時,假設有10張票,所以tickets
陣列被設定為包含10個true
值,表示所有票都是可用的。
定義了兩個主要的路由:
POST /buy-ticket
路由用於購買票。當客戶端向此路由發送POST請求時,它需要在請求主體中提供一個叫做numTickets
的數字,指定要購買的票數。如果客戶端未提供numTickets
或者提供的值不是有效的正整數,則會收到錯誤響應。否則,程式會檢查tickets
陣列,尋找可用的票,然後將它們標記為已購買(false
)。最後,它會返回成功購買的消息,以及已購買票的索引。
GET /available-tickets
路由用於查詢可用的票數。當客戶端向此路由發送GET請求時,程式會計算目前尚未被購買的票數,然後返回這個數字。
最後,我們使用app.listen
方法來啟動我們的Web應用程序,並讓它在指定的端口(這裡是3000)上監聽HTTP請求。
總結來說,這個程式示例是一個簡單的搶票系統,允許客戶端購買票並查詢可用的票數。