Node-帮助中心模块
【摘要】 Node-帮助中心模块
帮助中心模块
接下来我们尝试写一个帮助中心模块,管理员可以提交修改反馈信息,用户可以查看进行参考。
1、创建数据库表
- 主要字段有:
- id:主键,自增
- title:标题
- createtime:创建时间
- content:内容
- 表结构
CREATE TABLE help_articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
createtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
content TEXT NOT NULL
);
2、引入接口路由
创建表以后,接下来就可以去新建对应文件和引入了
☞ app.js
//引入帮助中心路由
const helpRoutes = require('./helpRoutes');
// 注册路由
app.use('/helparticles', helpRoutes);
3、新增接口
创建表和路由以后,接下来就可以去开发我们的接口了
☞ 新建 server => api => helpRoutes.js
之前我们封装好的公共方法直接引入
const express = require('express');
const router = express.Router();
const connectionPool = require('../db'); // 引入数据库连接池模块
const { addCondition, addDateRangeCondition, addPagination } = require('./apimethods.js'); // 引入封装方法
// 新增 POST
router.post('/', (req, res) => {
const insertSql = 'INSERT INTO help_articles SET ?'; // 准备 SQL 插入语句
const { title,content} = req.body;
// 检查是否缺少必要字段
if (!title || !content) {
res.send({
code: 400,
data: results,
message: '请填写必填信息!'
});
return
}
const postData = { title,content };
connectionPool.query(insertSql, postData, (error, results, fields) => {
console.log(results, 'results');
if (error) {
res.send({
code: 500,
data: results,
message: '添加失败!'
});
return;
} else {
res.send({
code: 200,
data: results,
message: '添加成功!'
});
}
});
});
- 测试一下成功!
{code: 200,…}
code: 200
data: {fieldCount: 0, affectedRows: 1, insertId: 1, serverStatus: 2, warningCount: 0, message: "",…}
message: "添加成功!"
4、查询接口
接下来我们写一个查询接口,用于查询所有反馈信息,并且进行对应的分页
// 分页查询
router.get('/', (req, res) => {
const { describe, name,phone,feedinformation,userId, pageNum, pageSize } = req.query;
let query = `SELECT * FROM feedbacks`;
// 构建查询条件
const params = [];
query = addCondition(query, params, 'userId', userId);
query = addCondition(query, params, 'describe', describe);
query = addCondition(query, params, 'name', name);
query = addCondition(query, params, 'phone', phone);
query = addPagination(query, params, pageNum, pageSize); //分页条件
console.log('查询条件', query, params);
// 查询数据库并返回数据
connectionPool.query(query, params, (error, results) => {
if (error) {
res.send({
code: 500,
data: results,
message: '查询失败!'
});
return;
} else {
let sqltotal = `SELECT COUNT(*) AS total FROM feedbacks;`
// 查询数据库并返回数据
connectionPool.query(sqltotal, (errtotal, rows) => {
let total = rows[0]['total'];
if (errtotal) {
res.send({
code: 401,
data: results,
message: '查询失败!'
});
return;
} else {
res.send({
total: total,
code: 200,
data: results,
message: '查询成功!',
});
}
});
}
});
});
- 测试一下我们的查询接口
{
"total": 2,
"code": 200,
"data": [
{
"id": 1,
"name": null,
XXX
},
{
"id": 2,
"name": null,
XXXX
}
],
"message": "查询成功!"
}
ok,没问题,我们添加的查询参数也非常ok
5、修改提交接口
接下来我们写一个修改提交接口,用于修改反馈信息,目的是为了让管理员提交反馈的信息
修改我们主要是为了核查是否添加了反馈的信息
// 更新接口
router.put('/', (req, res) => {
const { name, phone, username, describe, userId, email,feedinformation, id } = req.body;
// 确保 id 是有效的数字
if (isNaN(id)) {
return res.status(400).send({
code: 400,
message: '无效的 ID!'
});
}
// 构建更新的字段(不包括 id)
const updateValues = { name, phone, username, describe, userId, email,feedinformation };
// 确保至少传递了要更新的字段
if (!name || !phone ||!feedinformation ) {
return res.status(400).send({
code: 400,
message: '缺少反馈信息!'
});
}
// 执行数据库更新
connectionPool.query('UPDATE feedbacks SET ? WHERE id = ?', [updateValues, id], (error, results, fields) => {
if (error) {
console.error('Database error:', error);
return res.status(500).send({
code: 500,
message: '修改失败!',
error: error.message || error
});
}
// 如果没有记录被更新
if (results.affectedRows === 0) {
return res.status(404).send({
code: 404,
message: '没有找到对应的记录!'
});
}
// 成功
res.send({
code: 200,
message: '修改成功!',
affectedRows: results.affectedRows
});
});
});
测试一下,ok,修改反馈信息完成
到这里我们的反馈信息模块就简单的完成了
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)