留言板数据库代码通常涉及到数据库设计、后端逻辑处理以及前端展示。以下是一个简单的留言板数据库代码示例,包括数据库设计、后端API和前端展示的基本逻辑。
假设我们使用MySQL数据库,留言板的基本表结构可以设计如下:
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
假设我们使用Node.js和Express框架来创建后端API。
const express = require('express');
const mysql = require('mysql');
const app = express();
app.use(express.json());
const db = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
db.connect(err => {
if (err) throw err;
console.log('Database connected!');
});
// 获取所有留言
app.get('/messages', (req, res) => {
const sql = 'SELECT * FROM messages';
db.query(sql, (err, result) => {
if (err) throw err;
res.json(result);
});
});
// 添加新留言
app.post('/messages', (req, res) => {
const { username, content } = req.body;
const sql = 'INSERT INTO messages (username, content) VALUES (?, ?)';
db.query(sql, [username, content], (err, result) => {
if (err) throw err;
res.json({ message: 'Message added successfully!' });
});
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
假设我们使用HTML和JavaScript来展示留言板。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form id="messageForm">
<input type="text" id="username" placeholder="用户名" required>
<textarea id="content" placeholder="留言内容" required></textarea>
<button type="submit">提交</button>
</form>
<ul id="messages"></ul>
<script>
document.getElementById('messageForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const content = document.getElementById('content').value;
const response = await fetch('/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, content })
});
if (response.ok) {
document.getElementById('messageForm').reset();
loadMessages();
}
});
async function loadMessages() {
const response = await fetch('/messages');
const messages = await response.json();
const messagesList = document.getElementById('messages');
messagesList.innerHTML = '';
messages.forEach(message => {
const li = document.createElement('li');
li.textContent = `${message.username}: ${message.content} (${new Date(message.created_at).toLocaleString()})`;
messagesList.appendChild(li);
});
}
loadMessages();
</script>
</body>
</html>
留言板适用于各种需要用户交互和反馈的场景,例如:
希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云