node如何写商品类接口并且添加到MySQL
时间: 2023-08-08 16:05:04 浏览: 41
要将商品数据存储在 MySQL 数据库中,您需要使用 Node.js 和 MySQL 的官方驱动程序。下面是一个简单的 Node.js 商品接口示例,它可以将商品数据存储在 MySQL 数据库中:
```javascript
// 导入所需的模块
const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');
// 创建 MySQL 连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb',
});
// 创建 Express 应用程序
const app = express();
// 使用 bodyParser 中间件来解析请求体
app.use(bodyParser.json());
// 定义商品的数据结构
class Product {
constructor(id, name, price) {
this.id = id;
this.name = name;
this.price = price;
}
}
// 定义获取所有商品的路由
app.get('/products', (req, res) => {
const sql = 'SELECT * FROM products';
pool.query(sql, (err, results) => {
if (err) {
console.error(err);
res.status(500).send('服务器错误');
} else {
const products = results.map(row => new Product(row.id, row.name, row.price));
res.json(products);
}
});
});
// 定义获取单个商品的路由
app.get('/products/:id', (req, res) => {
const sql = 'SELECT * FROM products WHERE id = ?';
const id = parseInt(req.params.id);
pool.query(sql, [id], (err, results) => {
if (err) {
console.error(err);
res.status(500).send('服务器错误');
} else if (results.length === 0) {
res.status(404).send('商品不存在');
} else {
const product = new Product(results[0].id, results[0].name, results[0].price);
res.json(product);
}
});
});
// 定义创建商品的路由
app.post('/products', (req, res) => {
const sql = 'INSERT INTO products (name, price) VALUES (?, ?)';
const name = req.body.name;
const price = req.body.price;
pool.query(sql, [name, price], (err, results) => {
if (err) {
console.error(err);
res.status(500).send('服务器错误');
} else {
const product = new Product(results.insertId, name, price);
res.json(product);
}
});
});
// 定义更新商品的路由
app.put('/products/:id', (req, res) => {
const sql = 'UPDATE products SET name = ?, price = ? WHERE id = ?';
const id = parseInt(req.params.id);
const name = req.body.name;
const price = req.body.price;
pool.query(sql, [name, price, id], (err, results) => {
if (err) {
console.error(err);
res.status(500).send('服务器错误');
} else if (results.affectedRows === 0) {
res.status(404).send('商品不存在');
} else {
const product = new Product(id, name, price);
res.json(product);
}
});
});
// 定义删除商品的路由
app.delete('/products/:id', (req, res) => {
const sql = 'DELETE FROM products WHERE id = ?';
const id = parseInt(req.params.id);
pool.query(sql, [id], (err, results) => {
if (err) {
console.error(err);
res.status(500).send('服务器错误');
} else if (results.affectedRows === 0) {
res.status(404).send('商品不存在');
} else {
res.sendStatus(204);
}
});
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动,监听端口 3000');
});
```
在这个示例中,我们使用了 MySQL 的官方驱动程序来连接 MySQL 数据库,并创建了一个简单的商品类接口。我们使用了一个类来定义商品的数据结构,并使用了 MySQL 数据库来存储数据。我们通过 SQL 语句来操作数据库,并将结果映射到商品对象中。