成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Egg學(xué)習(xí)_Setp1_初始化項目添加數(shù)據(jù)庫

Karrdy / 999人閱讀

摘要:前言本系列文章是學(xué)習(xí)過程的一個記錄初步目標(biāo)是寫一個個人博客會盡可能多使用中提供的各種功能本文全部使用請確保版本足夠支持文中有不正確地方請指正地址文檔初始化項目使用腳手架初始化項目選擇初始化項目的類型項目目錄結(jié)構(gòu)自定義啟動時

前言

本系列文章是Egg學(xué)習(xí)過程的一個記錄,初步目標(biāo)是寫一個個人博客,會盡可能多使用Egg中提供的各種功能.
本文全部使用 async 請確保Node版本足夠支持.
文中有不正確地方請指正.
GitHub地址: https://github.com/devil5263/...
Egg文檔: https://eggjs.org/zh-cn/intro/

初始化項目

使用Egg腳手架初始化項目

$ npm instal egg-init -g
$ egg-init egg-example --type=simple // 選擇初始化項目的類型
$ cd egg-example
$ npm install

項目目錄結(jié)構(gòu)

egg-project
├── package.json
├── app.js //自定義啟動時的初始化工作
├── app
|   ├── router.js // 配置 URL 路由規(guī)則
│   ├── controller // 控制層
│   |   └── auth.js // 業(yè)務(wù)邏輯-注冊登錄實現(xiàn)
│   ├── service // 業(yè)務(wù)邏輯層
│   |   └── auth.js // 業(yè)務(wù)邏輯-注冊登錄實現(xiàn)
|   ├── model // 數(shù)據(jù)庫表結(jié)構(gòu)
│   |   └── user.js // 業(yè)務(wù)邏輯-user表
│   ├── middleware // 中間件
│   ├── schedule // 任務(wù)
│   └── extend // 框架的擴(kuò)展
├── config // 初始化-所有配置文件
|   ├── plugin.js
|   ├── config.default.js
│   ├── config.prod.js
|   ├── config.test.js (可選)
|   ├── config.local.js (可選)
|   └── config.unittest.js (可選)
├── build // 前端webpack打包配置
|   ├── webpack.base.js
|   ├── webpack.dev.js
|   └── webpack.prod.js
├── resource// 前端源文件
|   ├── assets // 前端資源
|   ├── components // 前端組件
│   └── pages // 前端頁面
|       └── page1 // 某一頁面
|           ├── app.vue // vue單文件組件
|           ├── index.js // vue入口文件
|           ├── index.html // html頁面
|           └── js (可選) // store/router js文件
└── test // 初始化-單元測試用例
    ├── middleware
    |   └── response_time.test.js
    └── controller
        └── home.test.js
MySQL配置

這里使用了兩個Egg的插件

egg-mysql 用于連接MySQL(需要npm install egg-mysql)

egg-sequelize 用于定義model進(jìn)行db層操作(需要安裝egg-sequelizemysql2兩個庫)

數(shù)據(jù)庫配置

// {work_dir}/config/config.default.js
const database = "egg"; // 數(shù)據(jù)庫名字
module.exports = appInfo => {
  const config = {};
  config.keys = appInfo.name + "_1501817502166_7037";

  config.sequelize = { // egg-sequelize 配置
    dialect: "mysql", // db type
    database: database,
    host: "localhost",
    port: "3306",
    username: "root",
    password: ""
  };

  return config;
};

插件配置

// {work_dir}/config/plugin.js
exports.sequelize = {
    enable: true,
    package: "egg-sequelize"
};

啟動時創(chuàng)建數(shù)據(jù)庫表

// {work_dir}/app.js
module.exports = app => {
    app.beforeStart(async function () {
        await app.model.sync({ force: true });
    });
};

定義model

// {work_dir}/app/model/user.js
module.exports = app => {
  const { STRING, INTEGER, DATE } = app.Sequelize;

  const User = app.model.define("user", {
    login: STRING,
    id: {
      type: INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    name: STRING(30),
    password: STRING(32),
    age: INTEGER,
    last_sign_in_at: DATE,
    created_at: DATE,
    updated_at: DATE
  });

  return User;
};

目前為止,egg-example項目已初始化并添加了MySQL配置,成功啟動后會發(fā)現(xiàn)數(shù)據(jù)庫中已經(jīng)有了定義的 model User

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84754.html

相關(guān)文章

  • Egg.js搭建后臺服務(wù)API

    摘要:因為平常開發(fā)都是前后端分離的模式,就想著使用創(chuàng)建后臺服務(wù),寫一套接口配合其他的項目。復(fù)雜數(shù)據(jù)的處理,比如要展現(xiàn)的信息需要從數(shù)據(jù)庫獲取或者是第三方服務(wù)的調(diào)用。更新用戶信息用戶信息已更改一個簡單的應(yīng)用結(jié)構(gòu)就是這樣,如此便實現(xiàn)了用負(fù)責(zé)接口服務(wù)。 寫在前面的話 最近在學(xué)習(xí)Egg.js,它是阿里推出的基于Koa的node開發(fā)框架,為企業(yè)級框架和應(yīng)用而生。Egg.js 的官方文檔已經(jīng)很完善了,想學(xué)...

    dailybird 評論0 收藏0
  • Egg.js搭建后臺服務(wù)API

    摘要:因為平常開發(fā)都是前后端分離的模式,就想著使用創(chuàng)建后臺服務(wù),寫一套接口配合其他的項目。復(fù)雜數(shù)據(jù)的處理,比如要展現(xiàn)的信息需要從數(shù)據(jù)庫獲取或者是第三方服務(wù)的調(diào)用。更新用戶信息用戶信息已更改一個簡單的應(yīng)用結(jié)構(gòu)就是這樣,如此便實現(xiàn)了用負(fù)責(zé)接口服務(wù)。 寫在前面的話 最近在學(xué)習(xí)Egg.js,它是阿里推出的基于Koa的node開發(fā)框架,為企業(yè)級框架和應(yīng)用而生。Egg.js 的官方文檔已經(jīng)很完善了,想學(xué)...

    idealcn 評論0 收藏0
  • 通過demo學(xué)習(xí)OpenStack開發(fā)所需的基礎(chǔ)知識 -- 軟件包管理

    摘要:不幸的是,在軟件包管理十分混亂,至少歷史上十分混亂。的最大改進(jìn)是將函數(shù)的參數(shù)單獨放到一個的文件中這些成為包的元數(shù)據(jù)?;诘陌姹咎柟芾?。的版本推導(dǎo)這里重點說明一下基于的版本號管理這個功能。開發(fā)版本號的形式如下。 為什么寫這個系列 OpenStack是目前我所知的最大最復(fù)雜的基于Python項目。整個OpenStack項目包含了數(shù)十個主要的子項目,每個子項目所用到的庫也不盡相同。因此,對于...

    blastz 評論0 收藏0
  • egg 自學(xué)入門demo分享

    摘要:編寫在文件夾下添加,文件這里用于獲取數(shù)據(jù)庫中的數(shù)據(jù)添加路由確保數(shù)據(jù)庫能連接成功后,便可以啟動項目。本文只是輔助介紹快速搭建一個基本的項目,具體內(nèi)容請參考若有疑問或錯誤,請留言,謝謝 2018-08,本文適用于對egg有興趣想要了解的同學(xué)完整項目代碼:https://github.com/NameHewei/node-egg 項目主要文件目錄結(jié)構(gòu) |—— app |—— con...

    Olivia 評論0 收藏0
  • EggBorn.js:一款頂級Javascript全棧開發(fā)框架

    摘要:是什么是一款頂級全棧開發(fā)框架。漸進(jìn)式開發(fā)由于模塊的高度內(nèi)聚,可以將業(yè)務(wù)以模塊的形式沉淀,在多個項目中重復(fù)使用,既可貢獻(xiàn)到開源社區(qū),也可部署到公司內(nèi)部私有倉庫。模塊發(fā)布當(dāng)項目中的模塊代碼穩(wěn)定后,可以將模塊公開發(fā)布,貢獻(xiàn)到開源社區(qū)。 EggBorn.js是什么 EggBorn.js是一款頂級Javascript全棧開發(fā)框架。 EggBorn.js是采用Javascript進(jìn)行全棧開發(fā)的最佳...

    dayday_up 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<