# 在/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:真實支付
- 項目上線運行
- 項目代碼下載