egg 自学入门demo分享
2018-08,本文适用于对egg有兴趣想要了解的同学
项目主要文件目录结构
|—— app
|—— controller
|—— cook.js
|—— model
|—— cook.js
|—— router.js
|—— config
|—— config.default.js
|—— plugin.js
|—— package.json
|—— README.md
安装
- npm i egg-init -g
- egg-init egg-example --type=simple
- cd egg-example
- npm i
启动项目
- npm run dev
项目
本文主要是以搭建一个连接mongoDB的后端,以提供api接口
连接数据库
- 引入数据库插件,在plugin.js文件中添加如下代码
exports.mongoose = {
enable: true,
package: 'egg-mongoose',
};
- 在config.default.js中添加如下配置
config.mongoose = {
client: {
url: 'mongodb://127.0.0.1:27017/database-name',
},
}
编写model
在model文件下添加,cook.js 文件
module.exports = app => {
const mongoose = app.mongoose;
const Schema = mongoose.Schema;
const CookeSchema = new Schema({
_id: { type: Schema.Types.ObjectId },
name: { type: String },
img: { type: String },
step: { type: String }
}, {
versionKey: false
});
return mongoose.model('cooks', CookeSchema);
}
注意如果使用mongoDB中的_id时type的类型,以及如何去掉__v 版本锁字段。
编写controller
在controller文件夹下添加,cook.js文件
const Controller = require('egg').Controller;
class HomeController extends Controller {
async list() {
this.ctx.response.body = {
result: await this.ctx.model.Cook.find({}, {'_id': 0})
};
}
async listOne() {
const { id } = this.ctx.params
this.ctx.body = {
result: await this.ctx.model.Cook.find({ '_id': id }, {'_id': 0})
};
}
}
module.exports = HomeController;
这里用于获取数据库中的数据
添加路由
module.exports = app => {
const { router, controller } = app;
router.get('/cook/', controller.cook.list);
router.get('/cook/:id', controller.cook.listOne);
};
确保数据库能连接成功后,便可以启动项目。
本文只是辅助介绍快速搭建一个基本的egg项目,具体内容请参考:https://eggjs.org/
若有疑问或错误,请留言,谢谢!Github blog issues
egg 自学入门demo分享的更多相关文章
- scrapy 自学入门demo分享
[toc] 本文基于python 3.7.0,win10平台: 2018-08 完整项目代码:https://github.com/NameHewei/python-scrapy 安装 安装pytho ...
- 史诗手册!微信小程序新手自学入门宝典!
一.小程序官方指南 1:官方开发工具下载: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201714 0.12 ...
- WPF自学入门(三)WPF路由事件之内置路由事件
有没有想过在.NET中已经有了事件机制,为什么在WPF中不直接使用.NET事件要加入路由事件来取代事件呢?最直观的原因就是典型的WPF应用程序使用很多元素关联和组合起来,是否还记得在WPF自学入门(一 ...
- WPF自学入门(十一)WPF MVVM模式Command命令
在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正如上一篇文章中在开始说的,MVVM的目的是为了最大限度地降低了 ...
- WPF自学入门(十二)WPF MVVM模式提取函数
我们平时在写代码时为了不重复写代码,会进行复制代码或者写通用方法.今天我们就来把上传做的函数提取成为通用的方法调用.把上次写的函数提取为两个主要的文件:ObserableObject和RelayCom ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式 ...
- ReactJs 入门DEMO(转自别人)
附件是分享的一些他人的ReactJs入门DEMO,以前版本使用的是JSXTransformer.js,新版的用browser.min.js替代了. DEMO 下载地址:http://files.cnb ...
- Maven+SpringMVC+Dubbo 简单的入门demo配置
转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...
- WPF自学入门(六)WPF带标题的内容控件简单介绍
在WPF自学入门(二)WPF-XAML布局控件的文章中分别介绍StackPanel,WarpPanel,DockPanel,Grid,Canvas五种布局容器的使用,可以让我们大致了解容器可以使用在什 ...
随机推荐
- Java_Set用法总结
在java语言中,提供多种不同的结构来组织对象,Set(集合)是其中的一种,本身是一个接口,其迭代时的顺序取决于其具体实现. 典型的实现包括: HashSet:哈希表是通过使用称为散列法的机制来存储信 ...
- linuxprobe培训第2节课笔记2019年7月6日
使用VM虚拟机配置RHEL实验环境. 鉴于在笔记本上装过centos7,这章内容难度对我来说不是很大. 重置root管理员密码(RHCSA考题,第一题,做不出来无法进行下一步考试) e linux16 ...
- 安卓学习资料推荐《深入理解Android:卷2》下载
下载地址:百度云下载地址 编辑推荐 <深入理解Android:卷2>编辑推荐:经典畅销书<深入理解Android:卷I>姊妹篇,51CTO移动开发频道和开源中国社区一致鼎力推荐 ...
- 把 python 程序打包成 egg 或者 whl 安装包
原文出处:http://www.worldhello.net/2010/12/08/2178.html 本文略有改动 1.1 安装setuptools 首先要安装setuptools工具.Debian ...
- kubernetes安装部署-day01
一.基础环境的准备: 1.1.安装docker: docker的官网是:https://www.docker.com/ 1.1.1.rpm包安装: 官方下载地址:https://download.do ...
- Linux系统-CENTOS7使用笔记
复制文件夹下的所有文件到另一个文件夹下 cp ~/dirname/* ~/otherdirname 解压rar文件 PS:在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本 ...
- BZOJ4152 The Captain(dijkstra+巧妙建图)
BZOJ4152 The Captain 题面很简洁: 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1号点走到n号点的最小费用. 很明显 ...
- 【EdgeBoard体验】开箱与上手
简介 市面上基于嵌入式平台的神经网络加速平台有很多,今天给大家带来是百度大脑出品的EdgeBoard.按照官网文档的介绍,EdgeBoard是基于Xilinx Zynq Ultrascale+ MPS ...
- Python教程资源
链接:https://pan.baidu.com/s/1zcCG4KJ8p4GI-x2c6PY2Ng 提取码:n2q2
- python正则表达式与re模块-02
正则表达式 正则表达式与python的关系 # 正则表达式不是Python独有的,它是一门独立的技术,所有的编程语言都可以使用正则 # 但要在python中使用正则表达式,就必须依赖于python内置 ...