目录

  • 安装
  • 项目
    • 连接数据库
    • 编写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/

  1. npm i egg-init -g
  2. egg-init egg-example --type=simple
  3. cd egg-example
  4. npm i

启动项目

  • npm run dev

项目

本文主要是以搭建一个连接mongoDB的后端,以提供api接口

连接数据库

  1. 引入数据库插件,在plugin.js文件中添加如下代码
exports.mongoose = {enable: true,package: 'egg-mongoose',
};
  1. 在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分享相关推荐

  1. web前端自学入门视频教程分享

    学习前端,要从学习HTML和CSS开始着手.关于这部分的学习,网上可选择的资料就太多了,这里不一一列举,题主百度搜索栏搜索 HTML 教程,或者css 教程,就可找到相关资料. 接着是学习前端的一个难 ...

  2. 兄弟连区块链入门教程分享区块链POW证明代码实现demo

    区块链入门教程分享区块链POW证明代码实现demo 这里强调一下区块链的协议分层 应用层 合约层 激励机制 共识层 网络层 数据层 上 一篇主要实现了区块链的 数据层,数据层主要使用的技术 ...

  3. 史诗手册!微信小程序新手自学入门宝典!你想要的都在这里

    一.小程序官方指南 1:官方开发工具下载: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=201714 0.12 ...

  4. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  5. dubbo web工程示例_分布式开发-Zooker+dubbo入门-Demo

    作者:知了堂-刘阳 1.什么是SOA架构 SOA 是Service-Oriented Architecture的首字母简称,它是一个面向服务的架构模式(俗称:分布式:面服务的分布式) 为什么互联网项目 ...

  6. Web前端开发入门学习分享

    Web前端开发入门学习分享 1:如何开始学习Web前端 首先你需要学习html的各个标签,掌握其用法和规范,明白其作用. 开始学习css的使用,你先学习在html页面中为标签增加css样式,其次是将c ...

  7. egg.js入门教程视频文件(转载于cnode社区)

    记得上篇博客我满怀欣喜的去搞富文本,结果撞的头破血流. 简直是惨不忍睹.后来我也说了,我的那个有比较严重的问题,后期会考虑重构.(第一版已经放弃了) 之后我说我会去看关于后端nodejs koa框架方 ...

  8. Dubbo入门Demo

    2019独角兽企业重金招聘Python工程师标准>>> 1.Dubbo简单介绍 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方 ...

  9. rabbitmq 入门demo

    rabbitmq 入门demo http://www.cnblogs.com/jimmy-muyuan/p/5428715.html http://www.cnblogs.com/shanyou/p/ ...

最新文章

  1. 设计模式 之美 -- 简单工厂模式
  2. 在IIS上搭建WebSocket服务器(一)
  3. jq的ajax和模块引擎
  4. 明日开播,速来围观!AI TIME 自然语言处理专题第 5 期 | 法律智能
  5. mvn compile遇到的问题:-source1.3 中不支持注释
  6. ARC072/ABC059
  7. 腾讯位置服务开发应用-使用教程,案例分享,知识总结
  8. Qt开发之路——SogouInput\Components\ Error - RtlWerpReportException failed with status code :-107374182
  9. usb 键盘码表_电脑键盘对应的二进制码表
  10. tomcat配置优化,apr的配置详解
  11. 2020数学建模C题摘要
  12. 房价会象汽车电脑一样下降
  13. TestCenter测试管理工具功能详解十六(U)
  14. css3元素简单的闪烁效果
  15. oj苹果和虫子c语言,用C++实现苹果和虫子问题
  16. 保姆教程:mac ssh密钥连接Linux
  17. VS实现rar格式压缩包的解压详解
  18. Android Studio 4.0 Image Asset 图标不能透明(记录)
  19. 为什么NoSQL数据库这么受欢迎?
  20. java 检测u盘_Java检测Windows的U盘插入

热门文章

  1. Unity3D开发——LeRunning的人物角色信息的显示
  2. 《JavaScript启示录》——第1章 JavaScript对象 1.1创建对象
  3. Floodlight之 FloodlightContextStore 数据结构
  4. 怎样在不处理的情况下在ABBYY FineReader中添加图像
  5. JAVA中操作符的优先级
  6. Shell之sed用法 转滴
  7. 如何查看服务器一个端口的占用情况(netstat -an)
  8. 正则表达式中空格的危害
  9. redis集群之主从架构
  10. Hbase集群搭建二(Hadoop搭建)