node.js和mysql实现一个新闻发布功能
时间: 2024-02-22 20:00:36 浏览: 164
好的,下面是实现步骤:
1. 安装 Node.js 和 MySQL;
2. 创建一个数据库,例如命名为 `news`,并创建一张新闻表 `news_table`,包含字段 `id`(自增主键)、`title`(新闻标题)、`content`(新闻内容)、`create_time`(创建时间);
3. 在 Node.js 中使用 `mysql` 模块连接数据库;
4. 在 Node.js 中使用 `express` 模块创建一个服务器,并监听一个端口;
5. 在服务器中创建一个路由,例如 `/publish`,用于接收 POST 请求;
6. 在 `/publish` 路由中,解析 POST 请求中的表单数据,包括新闻标题和内容;
7. 将新闻标题和内容插入到数据库中的 `news_table` 表中,并设置当前时间为创建时间;
8. 返回一个 JSON 格式的响应,表示新闻发布成功。
下面是代码示例:
```javascript
const express = require('express');
const mysql = require('mysql');
// 创建连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'news',
});
// 创建服务器
const app = express();
app.use(express.urlencoded({ extended: true }));
// 创建路由
app.post('/publish', (req, res) => {
const { title, content } = req.body;
const sql = 'INSERT INTO news_table (title, content, create_time) VALUES (?, ?, ?)';
const now = new Date();
const createTime = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()} ${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`;
pool.query(sql, [title, content, createTime], (err, results) => {
if (err) {
console.error(err);
res.status(500).json({ message: '发布新闻失败' });
} else {
res.json({ message: '发布新闻成功' });
}
});
});
// 监听端口
app.listen(3000, () => {
console.log('服务器已启动');
});
```
上述代码中,我们首先创建了一个连接池,用于连接 MySQL 数据库。然后创建了一个服务器,并使用 `express` 模块解析 POST 请求中的表单数据。在 `/publish` 路由中,我们将标题、内容和当前时间插入到 `news_table` 表中,并返回一个 JSON 格式的响应,表示新闻发布成功。
注意:上述代码仅为示例,实际应用中还需要进行错误处理、参数校验等。
阅读全文