Rumah > Artikel > pangkalan data > Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah
Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang ringkas
Sistem rumah pintar telah menjadi sebahagian daripada kehidupan keluarga moden. Dengan bantuan sistem rumah pintar, kami boleh mengawal pelbagai peranti di rumah dari jauh, seperti lampu, peralatan, kunci pintu, dsb., melalui telefon mudah alih atau peranti lain. Artikel ini akan memperkenalkan cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang ringkas dan menyediakan contoh kod khusus untuk rujukan pembaca.
1. Analisis keperluan sistem
Sebelum memulakan pembangunan, kami perlu menjelaskan keperluan sistem terlebih dahulu. Sistem rumah pintar yang ringkas sepatutnya mempunyai fungsi berikut:
2. Reka bentuk pangkalan data
Berdasarkan keperluan di atas, kami boleh mereka bentuk struktur pangkalan data berikut:
Jadual pengguna (pengguna):
Meja peranti (peranti):
device_id: ID peranti
mkdir smart-home-system cd smart-home-system npm init -y npm install express mongodb
db.js
fail dan tambah kandungan berikut: const { MongoClient } = require('mongodb'); async function connect() { try { const client = await MongoClient.connect('mongodb://localhost:27017'); const db = client.db('smart-home-system'); console.log('Connected to the database'); return db; } catch (error) { console.log('Failed to connect to the database'); throw error; } } module.exports = { connect };
db.js
文件,并添加以下内容:const express = require('express'); const { ObjectId } = require('mongodb'); const { connect } = require('../db'); const router = express.Router(); router.get('/', async (req, res) => { try { const db = await connect(); const devices = await db.collection('devices').find().toArray(); res.json(devices); } catch (error) { res.status(500).json({ error: error.message }); } }); router.post('/', async (req, res) => { try { const { name, type, status, user_id } = req.body; const db = await connect(); const result = await db.collection('devices').insertOne({ name, type, status, user_id: ObjectId(user_id), }); res.json(result.ops[0]); } catch (error) { res.status(500).json({ error: error.message }); } }); module.exports = router;
在根目录下创建一个routes
文件夹,并添加以下路由文件devices.js
:
const { connect } = require('../db'); async function getDevices() { try { const db = await connect(); const devices = await db.collection('devices').find().toArray(); return devices; } catch (error) { throw error; } } async function createDevice(device) { try { const db = await connect(); const result = await db.collection('devices').insertOne(device); return result.ops[0]; } catch (error) { throw error; } } module.exports = { getDevices, createDevice, };
在根目录下创建一个controllers
文件夹,并添加以下控制器文件devicesController.js
:
const express = require('express'); const devicesRouter = require('./routes/devices'); const app = express(); app.use(express.json()); app.use('/devices', devicesRouter); app.listen(3000, () => { console.log('Server is running on port 3000'); });
在根目录下创建一个index.js
Buat laluan dan pengawal
devices.js
: rrreee
Buat foldercontrollers
dalam direktori akar dan tambah fail pengawal berikut devicesController
: rrreee
index.js
dalam direktori akar dan tambah kandungan berikut: 🎜rrreee🎜Ini dia, kami telah menyelesaikan pembangunan sistem rumah pintar mudah, termasuk log masuk dan pendaftaran pengguna, pengurusan peranti, tugas berjadual dan fungsi rakaman operasi. 🎜🎜4. Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang ringkas. Dengan menggunakan gabungan MongoDB dan Node.js, kami boleh mengendalikan penyimpanan dan pemprosesan data dengan mudah. Pembaca boleh mengembangkan lagi sistem ini dan menambah lebih banyak fungsi mengikut keperluan tertentu. 🎜🎜Contoh kod yang disediakan dalam artikel ini adalah untuk rujukan sahaja Pembaca harus mengubah suai dan memperbaikinya mengikut keperluan sebenar semasa pembangunan sebenar. 🎜Atas ialah kandungan terperinci Cara menggunakan MongoDB untuk membangunkan sistem rumah pintar yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!