这是一个基于Node.js的微型Web应用程序,使用Express框架和MongoDB数据库来管理凯馨里奶茶的销售信息。以下是核心的路由设置代码示例:
const express = require('express');
const router = express.Router();
const Tea = require('../models/tea');
// 获取所有奶茶产品
router.get('/', async (req, res) => {
try {
const teas = await Tea.find();
res.json(teas);
} catch (err) {
res.status(500).json({ message: err.message });
}
});
// 根据ID获取奶茶产品
router.get('/:id', async (req, res) => {
try {
const tea = await Tea.findById(req.params.id);
if (tea) {
res.json(tea);
} else {
res.status(404).json({ message: '产品未找到' });
}
} catch (err) {
res.status(500).json({ message: err.message });
}
});
// 创建新的奶茶产品
router.post('/', async (req, res) => {
const newTea = new Tea(req.body);
try {
const savedTea = await newTea.save();
res.status(201).json(savedTea);
} catch (err) {
res.status(500).json({ message: err.message });
}
});
// 更新现有的奶茶产品
router.put('/:id', async (req, res) => {
try {
const updatedTea = await Tea.findByIdAndUpdate(req.params.id, { ...req.body, _id: req.params.id }, { new: true });
if (updatedTea) {
res.json(updatedTea);
} else {
res.status(404).json({ message: '产品未找到' });
}
} catch (err) {
res.status(500).json({ message: err.message });
}
});
// 删除奶茶产品
router.delete('/:id', async (req, res) => {
try {
const deletedTea = await Tea.findByIdAndDelete(req.params.id);
if (deletedTea) {
res.json({ message: '产品已删除' });
} else {
res.status(404).json({ message: '产品未找到' });
}
} catch (err) {
res.status(500).json({ message: err.message });
}
});
module.exports = router;
这段代码展示了如何使用Express框架和Mongoose模型来创建对奶茶产品的CRUD操作API。它使用了异步函数和try-catch
来处理异步操作和错误,这是现代JavaScript开发中推荐的错误处理实践。