资讯专栏INFORMATION COLUMN

egg 自学入门demo分享

Olivia / 3047人阅读

摘要:编写在文件夹下添加,文件这里用于获取数据库中的数据添加路由确保数据库能连接成功后,便可以启动项目。本文只是辅助介绍快速搭建一个基本的项目,具体内容请参考若有疑问或错误,请留言,谢谢

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接口

连接数据库

1.引入数据库插件,在plugin.js文件中添加如下代码

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

2.在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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19407.html

相关文章

  • scrapy 自学入门demo分享

    摘要:本文基于,平台完整项目代码安装安装官网下载注意环境变量是否配置成功安装为了安装顺利,请备好梯子安装过程中注意以下报错信息解决办法下载对应版本的文件表示版本表示位下载后在文件目录下执行文件名创建项目创建创建在项目跟目录执行配置文件 本文基于python 3.7.0,win10平台; 2018-08完整项目代码:https://github.com/NameHewei/python-scr...

    linkFly 评论0 收藏0
  • 通过demo学习OpenStack开发所需的基础知识 -- 软件包管理

    摘要:不幸的是,在软件包管理十分混乱,至少历史上十分混乱。的最大改进是将函数的参数单独放到一个的文件中这些成为包的元数据。基于的版本号管理。的版本推导这里重点说明一下基于的版本号管理这个功能。开发版本号的形式如下。 为什么写这个系列 OpenStack是目前我所知的最大最复杂的基于Python项目。整个OpenStack项目包含了数十个主要的子项目,每个子项目所用到的库也不尽相同。因此,对于...

    blastz 评论0 收藏0
  • 机械转行前端,半年零基础自学的心路历程

    摘要:受上海杰克大大委托,于今晚分享一下本人的自学历程主题机械转行前端,半年零基础自学的心路历程。所以我就这半年个人自学修行以来的一些感触和心得方面进行分享。背景介绍内容前工作状况机械离职经历心态转变目标确定大家好,我是,一枚前端萌新。 机械转行前端,半年零基础自学的心路历程 标签: 转行 自学 原创:Michael.Lu 277133779@qq .com 转载注明出处 这是初级群(西安...

    baihe 评论0 收藏0
  • 机械转行前端,半年零基础自学的心路历程

    摘要:受上海杰克大大委托,于今晚分享一下本人的自学历程主题机械转行前端,半年零基础自学的心路历程。所以我就这半年个人自学修行以来的一些感触和心得方面进行分享。背景介绍内容前工作状况机械离职经历心态转变目标确定大家好,我是,一枚前端萌新。 机械转行前端,半年零基础自学的心路历程 标签: 转行 自学 原创:Michael.Lu 277133779@qq .com 转载注明出处 这是初级群(西安...

    qc1iu 评论0 收藏0

发表评论

0条评论

Olivia

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<