# 新建/application/models/article.js
```
var tools = require('../../libs/tools');
var config = require(tools.rootPath + 'config');
var { connection, pool, model } = require(tools.rootPath + 'libs/model');
module.exports = class {
demo() {
return 'demo';
}
}
```
# 在/application/controllers/article.js中调用
```
async test(req, res) {
//实例化model
let article_model = tools.model('article');
//调用并打印demo方法
this.p(article_model.demo());
}
```
# 浏览器显示
![](https://img.kancloud.cn/6e/fe/6efe5c925bc6bda35eb5637cab939167_450x169.png)
# 控制台显示
![](https://img.kancloud.cn/8f/08/8f0809bce90212d8062992a2b8147bb2_361x92.png)
- 课程介绍
- 开发环境搭建
- 安装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:真实支付
- 项目上线运行
- 项目代码下载