egg 自学入门demo分享
目录
- 安装
- 项目
- 连接数据库
- 编写model
- 编写controller
- 添加路由
2018-08,本文适用于对egg有兴趣想要了解的同学
完整项目代码:https://github.com/NameHewei/node-egg
项目主要文件目录结构
|—— app|—— controller|—— cook.js|—— model|—— cook.js|—— router.js
|—— config|—— config.default.js|—— plugin.js
|—— package.json
|—— README.md
安装
官网: https://eggjs.org/zh-cn/
- 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.paramsthis.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
转载于:https://www.cnblogs.com/he-wei/p/9795074.html
egg 自学入门demo分享相关推荐
- web前端自学入门视频教程分享
学习前端,要从学习HTML和CSS开始着手.关于这部分的学习,网上可选择的资料就太多了,这里不一一列举,题主百度搜索栏搜索 HTML 教程,或者css 教程,就可找到相关资料. 接着是学习前端的一个难 ...
- 兄弟连区块链入门教程分享区块链POW证明代码实现demo
区块链入门教程分享区块链POW证明代码实现demo 这里强调一下区块链的协议分层 应用层 合约层 激励机制 共识层 网络层 数据层 上 一篇主要实现了区块链的 数据层,数据层主要使用的技术 ...
- 史诗手册!微信小程序新手自学入门宝典!你想要的都在这里
一.小程序官方指南 1:官方开发工具下载: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201714 0.12 ...
- WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...
WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...
- dubbo web工程示例_分布式开发-Zooker+dubbo入门-Demo
作者:知了堂-刘阳 1.什么是SOA架构 SOA 是Service-Oriented Architecture的首字母简称,它是一个面向服务的架构模式(俗称:分布式:面服务的分布式) 为什么互联网项目 ...
- Web前端开发入门学习分享
Web前端开发入门学习分享 1:如何开始学习Web前端 首先你需要学习html的各个标签,掌握其用法和规范,明白其作用. 开始学习css的使用,你先学习在html页面中为标签增加css样式,其次是将c ...
- egg.js入门教程视频文件(转载于cnode社区)
记得上篇博客我满怀欣喜的去搞富文本,结果撞的头破血流. 简直是惨不忍睹.后来我也说了,我的那个有比较严重的问题,后期会考虑重构.(第一版已经放弃了) 之后我说我会去看关于后端nodejs koa框架方 ...
- Dubbo入门Demo
2019独角兽企业重金招聘Python工程师标准>>> 1.Dubbo简单介绍 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方 ...
- rabbitmq 入门demo
rabbitmq 入门demo http://www.cnblogs.com/jimmy-muyuan/p/5428715.html http://www.cnblogs.com/shanyou/p/ ...
最新文章
- 设计模式 之美 -- 简单工厂模式
- 在IIS上搭建WebSocket服务器(一)
- jq的ajax和模块引擎
- 明日开播,速来围观!AI TIME 自然语言处理专题第 5 期 | 法律智能
- mvn compile遇到的问题:-source1.3 中不支持注释
- ARC072/ABC059
- 腾讯位置服务开发应用-使用教程,案例分享,知识总结
- Qt开发之路——SogouInput\Components\ Error - RtlWerpReportException failed with status code :-107374182
- usb 键盘码表_电脑键盘对应的二进制码表
- tomcat配置优化,apr的配置详解
- 2020数学建模C题摘要
- 房价会象汽车电脑一样下降
- TestCenter测试管理工具功能详解十六(U)
- css3元素简单的闪烁效果
- oj苹果和虫子c语言,用C++实现苹果和虫子问题
- 保姆教程:mac ssh密钥连接Linux
- VS实现rar格式压缩包的解压详解
- Android Studio 4.0 Image Asset 图标不能透明(记录)
- 为什么NoSQL数据库这么受欢迎?
- java 检测u盘_Java检测Windows的U盘插入