用js和mysql给我写一个具有管理员增删改查功能的后端代码
时间: 2024-05-03 19:22:34 浏览: 7
对于一个完整的后端代码,需要考虑很多方面,包括数据库的连接、路由的设置、接口的实现、数据的验证和处理等等。以下是一个简单的示例,仅供参考,具体实现可能需要根据具体需求进行调整和完善。
首先,需要安装相应的依赖库,包括express、mysql和body-parser,可以通过npm install命令进行安装。
接下来是代码实现:
```
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
// 数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'admin'
});
connection.connect(err => {
if (err) {
console.log('Error connecting to database');
} else {
console.log('Database connected');
}
});
// 中间件设置
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 路由设置
const router = express.Router();
router.get('/admins', (req, res) => {
connection.query('SELECT * FROM admins', (err, results) => {
if (err) {
res.status(500).send('Error retrieving admins from database');
} else {
res.send(results);
}
});
});
router.post('/admins', (req, res) => {
const { username, password } = req.body;
if (!username || !password) {
res.status(400).send('Username and password are required');
} else {
connection.query('INSERT INTO admins SET ?', { username, password }, (err, results) => {
if (err) {
res.status(500).send('Error inserting admin into database');
} else {
res.send('Admin added successfully');
}
});
}
});
router.put('/admins/:id', (req, res) => {
const { username, password } = req.body;
const id = req.params.id;
if (!username || !password) {
res.status(400).send('Username and password are required');
} else {
connection.query('UPDATE admins SET ? WHERE id = ?', [{ username, password }, id], (err, results) => {
if (err) {
res.status(500).send('Error updating admin in database');
} else {
res.send('Admin updated successfully');
}
});
}
});
router.delete('/admins/:id', (req, res) => {
const id = req.params.id;
connection.query('DELETE FROM admins WHERE id = ?', id, (err, results) => {
if (err) {
res.status(500).send('Error deleting admin from database');
} else {
res.send('Admin deleted successfully');
}
});
});
app.use('/api', router);
// 监听端口
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server listening on port ${port}`);
});
```
以上代码实现了一个简单的管理员增删改查功能,包括以下几个接口:
- GET /api/admins:获取所有管理员信息
- POST /api/admins:添加一个新的管理员
- PUT /api/admins/:id:更新指定id的管理员信息
- DELETE /api/admins/:id:删除指定id的管理员
其中,路由设置了一个/api的前缀,可以根据实际情况进行修改。注释中也有一些提示和解释,可以帮助理解相应代码的功能和作用。