实现 mongodb 数据库增删改查
新建 egg 项目
$ mkdir egg-mongoose-demo && cd egg-mongoose-demo
$ npm init egg --type=simple
$ npm i
安装 egg-mongoose
npm i egg-mongoose --save
egg 配置
// config\plugin.js
module.exports = {
mongoose: {
enable: true,
package: 'egg-mongoose'
}
};
mongoose 连接配置
// config\config.default.js
config.mongoose = {
url: 'mongodb://127.0.0.1:27017/test' // test 为 mongodb 数据库
};
定义 mongoose 数据模型
app 文件夹下新建 model 文件夹 新建 user.js 定义 schema
// app\model\user.js
'use strict';
module.exports = app => {
const mongoose = app.mongoose;
const Schema = mongoose.Schema;
const UserSchema = new Schema({
userName: { type: String },
password: { type: String },
});
return mongoose.model('User', UserSchema, 'user');
}
定义控制器
// app\controller\user.js
'use strict';
const Controller = require('egg').Controller;
class UserController extends Controller {
async find() {
this.ctx.body = await this.ctx.service.user.find();
}
async insert() {
this.ctx.body = await this.ctx.service.user.insert();
}
async delete() {
this.ctx.body = await this.ctx.service.user.delete();
}
async update() {
this.ctx.body = await this.ctx.service.user.update();
}
}
module.exports = UserController;
定义服务
// app\service\user.js
'use strict';
const Service = require('egg').Service;
class UserService extends Service {
async find() {
console.log('UserService find doing')
return await this.ctx.model.User.find({});
}
async insert() {
console.log('UserService insert doing')
return await this.ctx.model.User.create({'userName': 'wq_test', 'password': 123});
}
async delete() {
console.log('UserService delete doing')
return await this.ctx.model.User.remove({'userName': 'wq_test'});
}
async update() {
console.log('UserService update doing')
return await this.ctx.model.User.update({'userName': 'wq_test'}, {$set:{'userName':'wq'}});
}
}
module.exports = UserService;
创建路由
// app\router.js
'use strict';
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/find', controller.user.find);
router.get('/insert', controller.user.insert);
router.get('/delete', controller.user.delete);
router.get('/update', controller.user.update);
};
启动项目
npm run dev
测试增删改查
[插入数据测试](http://127.0.0.1:7001/insert)
[查询数据测试](http://127.0.0.1:7001/find)
[更新数据测试](http://127.0.0.1:7001/update)
[删除数据测试](http://127.0.0.1:7001/delete)