# 在/application/controllers/article.js中新增代码块
```
async del(req, res) {
//get获取的itemid
var itemid = parseInt(req.query.itemid);
if (!itemid) {
res.render('msg', { code: 0, msg: '数据不存在', url: '' });
return;
}
//执行删除
let r = await model.delete("delete from article where itemid=?", [itemid]);
//调用父类的msg方法
return this.msg(r, '', '/article/index');
}
```
# /application/controllers/article.js完整代码
```
var tools = require('../../libs/tools');
var config = require(tools.rootPath + 'config');
var { connection, pool, model } = require(tools.rootPath + 'libs/model');
var base = require(tools.controllerPath + 'common/base.js');
module.exports = class extends base {
constructor() {
super();
}
async index(req, res) {
//页码
var page = req.query.page || 1;
page = parseInt(page);
//分页
var pagesize = 2;
var offset = (page - 1) * pagesize;
//总页数
var total_page = Math.ceil(await model.value("select count(*) from article") / pagesize);
//数据
var lst = await model.select(`SELECT * from article order by itemid desc limit ${offset},${pagesize}`);
//加载模板并进行变量赋值
res.render(req.TPL, { data: lst, url: config.url, total_page: total_page, page: page });
}
async add(req, res) {
if (req.isPost) {
//提交后
var post = req.body;
var title = post.title.trim();
//标题判断
if (!title) {
res.render('msg', { code: 0, msg: '标题不能为空', url: '' });
return;
}
//内容判断
var content = post.content.trim();
if (!content) {
res.render('msg', { code: 0, msg: '内容不能为空', url: '' });
return;
}
//执行插入并返回id
let insertId = await model.i("INSERT INTO article SET ?", post);
if (insertId) {
res.render('msg', { code: 1, msg: '操作成功', url: '/article/index' });
} else {
res.render('msg', { code: 0, msg: '操作失败', url: '' });
}
return;
}
//加载模板文件
res.render(req.TPL, {});
}
async mod(req, res) {
if (req.isPost) {
//提交后
var post = req.body;
var itemid = parseInt(req.query.itemid);
if (!itemid) {
res.render('msg', { code: 0, msg: '数据不存在', url: '' });
return;
}
//标题判断
var title = post.title.trim();
if (!title) {
res.render('msg', { code: 0, msg: '标题不能为空', url: '' });
return;
}
//内容判断
var content = post.content.trim();
if (!content) {
res.render('msg', { code: 0, msg: '内容不能为空', url: '' });
return;
}
//执行更新操作
let r = await model.u("update article SET ? where itemid=?", post, [itemid]);
if (r) {
res.render('msg', { code: 1, msg: '操作成功', url: '/article/index' });
} else {
res.render('msg', { code: 0, msg: '操作失败', url: '' });
}
return;
}
var itemid = parseInt(req.query.itemid);
if (!itemid) {
res.render('msg', { code: 0, msg: '数据不存在', url: '' });
return;
}
//从数据库中读取文章
let data = await model.find("SELECT * from article where itemid=?", [itemid]);
//加载模板文件
res.render(req.TPL, { data: data });
}
async del(req, res) {
//get获取的itemid
var itemid = parseInt(req.query.itemid);
if (!itemid) {
res.render('msg', { code: 0, msg: '数据不存在', url: '' });
return;
}
//执行删除
let r = await model.delete("delete from article where itemid=?", [itemid]);
//调用父类的msg方法
return this.msg(r, '', '/article/index');
}
};
```
- 课程介绍
- 开发环境搭建
- 安装express.js框架
- 为diy自己的web框架做准备(1)
- 为diy自己的web框架做准备(2)
- 为应用绑定域名
- 封装控制器基类base.js
- 封装数据库操作基类model.js
- curd操作-准备工作
- curd操作-文章列表
- curd操作-添加文章
- curd操作-编辑文章
- curd操作-删除文章
- model文件的使用
- 文件上传
- session实现登录
- 邮件发送
- 文件下载
- 执行子任务
- 图片缩放
- 图片裁剪
- 图片验证码
- Excel读取与写入
- 编写计划任务
- 工具函数使用实例
- websocket
- 集成ckeditor
- 微信公众号开发-1:内网穿透
- 微信公众号开发-2:自动回复
- 微信公众号开发-3:api接口调用
- 微信公众号开发-4:oauth登录
- 微信公众号开发-5:沙箱支付
- 微信公众号开发-6:真实支付
- 项目上线运行
- 项目代码下载