現代的人開車是越來越普及的事情,因此在市區一個停車場的位置就一位難求,使用者越來越多,衍生出找不到車位的問題也越來越多,這時候就可以靠node.js連線mongo db寫一個停車場空位系統查詢
以下是一個簡單的Node.js應用程式,使用MongoDB實現停車場查詢空位系統的基本功能。在這個程式中,我將使用Express.js作為Web框架,MongoDB作為數據庫來存儲停車場信息和空位信息。
我已經安裝了Node.js和MongoDB,並已經創建了一個名為parking
的數據庫,以及名為parkingLots
的集合來存儲停車場信息。
// 匯入所需的模塊
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
// 連接到MongoDB數據庫
mongoose.connect('mongodb://localhost/parking', { useNewUrlParser: true });
// 定義停車場模型
const ParkingLot = mongoose.model('ParkingLot', {
name: String,
totalSpaces: Number,
availableSpaces: Number,
});
const app = express();
app.use(bodyParser.json());
// 獲取所有停車場信息
app.get('/parkingLots', async (req, res) => {
try {
const parkingLots = await ParkingLot.find();
res.json(parkingLots);
} catch (error) {
res.status(500).json({ error: '無法獲取停車場信息' });
}
});
// 獲取特定停車場信息
app.get('/parkingLots/:id', async (req, res) => {
try {
const parkingLot = await ParkingLot.findById(req.params.id);
if (parkingLot) {
res.json(parkingLot);
} else {
res.status(404).json({ error: '停車場未找到' });
}
} catch (error) {
res.status(500).json({ error: '無法獲取停車場信息' });
}
});
// 更新停車場的可用空位
app.put('/parkingLots/:id', async (req, res) => {
try {
const parkingLot = await ParkingLot.findById(req.params.id);
if (parkingLot) {
parkingLot.availableSpaces = req.body.availableSpaces;
await parkingLot.save();
res.json(parkingLot);
} else {
res.status(404).json({ error: '停車場未找到' });
}
} catch (error) {
res.status(500).json({ error: '無法更新停車場信息' });
}
});
app.listen(3000, () => {
console.log('停車場查詢空位系統已啟動,監聽端口 3000');
});
在這個示例中,我定義了一個簡單的停車場模型,可以存儲停車場的名稱、總停車位和可用停車位。
以下是對程式的解釋:
匯入所需的模組:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
這裡導入了Express.js用於建立Web應用程式、Mongoose用於連接和操作MongoDB資料庫,以及body-parser用於解析HTTP請求體。
連接到MongoDB資料庫:
mongoose.connect('mongodb://localhost/parking', { useNewUrlParser: true });
這行程式碼連接到名為parking
的MongoDB資料庫。這是應用程式的資料儲存地點。
定義停車場模型:
const ParkingLot = mongoose.model('ParkingLot', {
name: String,
totalSpaces: Number,
availableSpaces: Number,
});
這裡使用Mongoose定義了一個名為ParkingLot
的MongoDB模型,用於儲存停車場的資訊,包括名稱、總停車位和可用停車位。
建立Express應用程式:
const app = express();
app.use(bodyParser.json());
這裡建立了一個Express應用程式,並使用body-parser
中間件來解析JSON請求體。
建立API端點:
GET /parkingLots
:獲取所有停車場的資訊。
GET /parkingLots/:id
:根據停車場的ID獲取特定停車場的資訊。
PUT /parkingLots/:id
:更新特定停車場的可用停車位資訊。
這些API端點分別用於獲取停車場資訊、獲取特定停車場資訊和更新停車場的可用停車位資訊。
啟動Express應用程式:
app.listen(3000, () => {
console.log('停車場查詢空位系統已啟動,監聽端口 3000');
});
這行程式碼啟動了Express應用程式,並監聽在端口3000上,以便透過HTTP訪問。當應用程式啟動時,會在控制台上打印一條訊息。
這個程式允許我透過HTTP請求來查詢停車場的資訊和更新停車場的可用停車位資訊。我可以使用Postman或其他HTTP請求工具來測試這些API端點。