摘要:前言本系列文章是學習過程的一個記錄初步目標是寫一個個人博客會盡可能多使用中提供的各種功能本文全部使用請確保版本足夠支持文中有不正確地方請指正地址文檔初始化項目使用腳手架初始化項目選擇初始化項目的類型項目目錄結構自定義啟動時
前言
本系列文章是Egg學習過程的一個記錄,初步目標是寫一個個人博客,會盡可能多使用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
項目目錄結構
egg-project ├── package.json ├── app.js //自定義啟動時的初始化工作 ├── app | ├── router.js // 配置 URL 路由規則 │ ├── controller // 控制層 │ | └── auth.js // 業務邏輯-注冊登錄實現 │ ├── service // 業務邏輯層 │ | └── auth.js // 業務邏輯-注冊登錄實現 | ├── model // 數據庫表結構 │ | └── user.js // 業務邏輯-user表 │ ├── middleware // 中間件 │ ├── schedule // 任務 │ └── extend // 框架的擴展 ├── 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.jsMySQL配置
這里使用了兩個Egg的插件
egg-mysql 用于連接MySQL(需要npm install egg-mysql)
egg-sequelize 用于定義model進行db層操作(需要安裝egg-sequelize和mysql2兩個庫)
數據庫配置
// {work_dir}/config/config.default.js const database = "egg"; // 數據庫名字 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" };
啟動時創建數據庫表
// {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配置,成功啟動后會發現數據庫中已經有了定義的 model User
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84754.html
摘要:因為平常開發都是前后端分離的模式,就想著使用創建后臺服務,寫一套接口配合其他的項目。復雜數據的處理,比如要展現的信息需要從數據庫獲取或者是第三方服務的調用。更新用戶信息用戶信息已更改一個簡單的應用結構就是這樣,如此便實現了用負責接口服務。 寫在前面的話 最近在學習Egg.js,它是阿里推出的基于Koa的node開發框架,為企業級框架和應用而生。Egg.js 的官方文檔已經很完善了,想學...
摘要:因為平常開發都是前后端分離的模式,就想著使用創建后臺服務,寫一套接口配合其他的項目。復雜數據的處理,比如要展現的信息需要從數據庫獲取或者是第三方服務的調用。更新用戶信息用戶信息已更改一個簡單的應用結構就是這樣,如此便實現了用負責接口服務。 寫在前面的話 最近在學習Egg.js,它是阿里推出的基于Koa的node開發框架,為企業級框架和應用而生。Egg.js 的官方文檔已經很完善了,想學...
摘要:不幸的是,在軟件包管理十分混亂,至少歷史上十分混亂。的最大改進是將函數的參數單獨放到一個的文件中這些成為包的元數據?;诘陌姹咎柟芾怼5陌姹就茖н@里重點說明一下基于的版本號管理這個功能。開發版本號的形式如下。 為什么寫這個系列 OpenStack是目前我所知的最大最復雜的基于Python項目。整個OpenStack項目包含了數十個主要的子項目,每個子項目所用到的庫也不盡相同。因此,對于...
摘要:編寫在文件夾下添加,文件這里用于獲取數據庫中的數據添加路由確保數據庫能連接成功后,便可以啟動項目。本文只是輔助介紹快速搭建一個基本的項目,具體內容請參考若有疑問或錯誤,請留言,謝謝 2018-08,本文適用于對egg有興趣想要了解的同學完整項目代碼:https://github.com/NameHewei/node-egg 項目主要文件目錄結構 |—— app |—— con...
摘要:是什么是一款頂級全棧開發框架。漸進式開發由于模塊的高度內聚,可以將業務以模塊的形式沉淀,在多個項目中重復使用,既可貢獻到開源社區,也可部署到公司內部私有倉庫。模塊發布當項目中的模塊代碼穩定后,可以將模塊公開發布,貢獻到開源社區。 EggBorn.js是什么 EggBorn.js是一款頂級Javascript全棧開發框架。 EggBorn.js是采用Javascript進行全棧開發的最佳...
閱讀 2879·2021-09-22 15:54
閱讀 1887·2019-08-30 15:53
閱讀 2241·2019-08-29 16:33
閱讀 1418·2019-08-29 12:29
閱讀 1387·2019-08-26 11:41
閱讀 2367·2019-08-26 11:34
閱讀 2947·2019-08-23 16:12
閱讀 1421·2019-08-23 15:56