1.egg.js官网只推荐了mysqle,要用mongodb得另找资料。通过查找,大家都在用Mongoose连接,于是乎学习

网站链接:https://www.npmjs.com/package/egg-mongoose

2.第一步:安装

npm i egg-mongoose --save  

3.配置

安装完成之后在目录/config/plugin.js中引用

exports.mongoose = {
enable: true,
package: 'egg-mongoose',
};

在/config/config.default.js中加入

// 数据库配置
exports.mongoose = {
client: {
url: 'mongodb://127.0.0.1:27017/egg_article', // 你的数据库地址,egg_article是你数据库得名字
options: {
useNewUrlParser: true,
},
},
};

4.简单得列子

在app下新建文件夹model,model下新建article.js文件,完整路径app/model/article.js

article.js内容

'use strict';

module.exports = app => {
const mongoose = app.mongoose;
const Schema = mongoose.Schema;
// 下面得操作是连接数据库
const ArticleSchema = new Schema({
// 修改和新增用到,规定字段得类型和其他条件等
title: {
type: String,
required: true,
},
_id: {
type: Schema.ObjectId,
ref: 'Tags',
required: true,
},
summary: {
type: String,
},
}, { versionKey: false }); return mongoose.model('Article', ArticleSchema, 'article'); // 我的理解:Article是指定查找的入口,随便取;ArticleSchema是参数;article是你数据集合表的名称
};

app/service/article.js

'use strict';

const Service = require('egg').Service;

class ArticleService extends Service {
/**
* 根据ID获取单个项目
*/
async getProjectById() {
const { ctx, app } = this;
try {
const results = await ctx.model.Article.find({ // Article为modal/article.js里面命名的名字
_id: app.mongoose.Types.ObjectId('5da034149b6e823ca2ea809d'),
});
return results;
} catch (err) {
ctx.body = JSON.stringify(err);
}
}
}
module.exports = ArticleService;

app/controller/article.js

'use strict';
const Controller = require('egg').Controller; class ArticleController extends Controller {
async index() {
const { ctx } = this;
const res = await ctx.service.article.getProjectById();
ctx.body = res; // 返回值显示
}
}
module.exports = ArticleController;

router.js

'use strict';

/**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/article', controller.article.index);
};

访问地址栏要改到/article

最新文章

  1. 整理分享原生态mac AndroidStudio的快捷键
  2. ajax的表单提交,与传送数据
  3. 在Windows .NET平台下使用Memcached
  4. Level 4 A10: 飞张?
  5. TFS客户端登录用户修改
  6. Objective-C关于分类、扮演、协议
  7. js获取当前url信息
  8. Java教程——CMD手动编译运行失败原因(高手略过)
  9. 查看linux服务器版本
  10. memcache分布式小实例
  11. 关于VFP9.0备注字段(memo)插入编辑问题
  12. web 项目中a标签传值(中文)到后台的乱码问题
  13. Cesium 一个导致浏览器内存一直增长的方法
  14. MySQL的计算时间差
  15. Python学习笔记-常用内置函数
  16. Css中如何使英文和拼音变成全大写、全小写和首字母大写?
  17. 关于clearfix和clear的讨论
  18. Elasticsearch + Elasticsearch-head搭建
  19. 系统分析与设计——WordCount
  20. vue 项目中assets文件夹与static文件夹引用的区别

热门文章

  1. python调用tushare获取A股上市公司管理层人员信息
  2. 只用200行Go代码写一个自己的区块链!(转)
  3. Pregel Master
  4. 利用ffmpeg进行视频软解播放
  5. 多线程中join的解释(转)
  6. zepto-touch事件
  7. SOLID设计原则
  8. JavaScript ---- 闭包(什么是闭包,为什么使用闭包,闭包的作用)
  9. 区别 |DCL |DDL |DML |DQL
  10. NX二次开发-UFUN单按钮模态对话框窗口打印uc1601用法