egg風格 什麼意思 egg框架學習筆記

2021-10-13 10:28:46 字數 2688 閱讀 2414

1、安裝

npm i egg-init -g

egg-init egg-example --type=******

cd egg-example

yarn install

npm run dev //localhost:7001

2、多環境配置

config

|- config.default.js

|- config.prod.js

|- config.test.js

|- config.local.js

config.default.js 為預設的配置檔案,所有環境都會載入這個配置檔案,開發環境config.local.js會覆蓋不是合併default配置,測試線上配置同理

配置寫法:返回乙個物件;寫成 exports.key = value 形式;返回乙個function

// 將 logger 目錄放到**目錄下

const path = require('path');

return `;

module.exports = () => `);

} else `);

5、controller

this.ctx: 當前請求的上下文 context 物件的例項,通過它我們可以拿到框架封裝好的處理當前請求的各種便捷屬性和方法。

this.service:應用定義的 service,通過它我們可以訪問到抽象出的業務層,等價於 this.ctx.service 。

this.config:應用執行時的配置項。

this.logger:logger 物件,上面有四個方法(debug,info,warn,error),分別代表列印四個不同級別的日誌,使用方法和效果與 context logger 中介紹的一樣,但是通過這個 logger 物件記錄的日誌,在日誌前面會加上列印該日誌的檔案路徑,以便快速定位日誌列印位置。

5.1 類的寫法

const controller = require('egg').controller

class postcontroller extends controller =this;

let data = await ctx.service.postservice.post();

await ctx.render('/index', data);

5.2 獲取 http 請求引數

1、query

在 url 中 ? 後面的部分是乙個 query string,這一部分經常用於 get 型別的請求中傳遞引數。例如 get /posts?category=egg&language=node 中 category=egg&language=node 就是使用者傳遞過來的引數。我們可以通過 ctx.query 拿到解析過後的這個引數體

2、params

route裡面的引數

this.ctx.params.projectid //1

3、body

ctx.request.query.id 和 ctx.query.id 是等價的,ctx.response.body= 和 ctx.body= 是等價的。

ctx.status === ctx.response.status

ctx.url === ctx.request.url

4、header

ctx.headers,ctx.header,ctx.request.headers,ctx.request.header:這幾個方法是等價的,都是獲取整個 header 物件。

ctx.get(name),ctx.request.get(name):獲取請求 header 中的乙個欄位的值,如果這個欄位不存在,會返回空字串。

我們建議用 ctx.get(name) 而不是 ctx.headers['name'],因為前者會自動處理大小寫。

5、cookie

儲存後端header裡的set-cookie

if (result.headers['set-cookie']) ctx.set('set-cookie', result.headers['set-cookie']);

自己設定瀏覽器cookie

如果想要 cookie 在瀏覽器端可以被 js 訪問並修改:

如果想要 cookie 在瀏覽器端不能被修改,不能看到明文:

ctx.cookies.set(key, value, {

httponly: true, // 預設就是 true

encrypt: true, // 加密傳輸

6、session

6、service

處理業務邏輯

const service = require('egg').service;

class userservice extends service {

async find(uid) {

// 假如 我們拿到使用者 id 從資料庫獲取使用者詳細資訊

const user = await this.ctx.db.query('select * from user where uid = ?', uid);

return {

name: user.user_name,

age: user.age

module.exports = userservice;

egg風格 什麼意思 egg裙什麼意思

egg裙就是桔梗裙。桔梗裙最主要就特點是高腰 擁有大擺裙 寬寬的袖子。egg裙大多是簡約風,屬於收腰型的款式,並且還有很好的垂墜感,所以egg裙可以稱作是非常有氣質的連衣裙。深受廣大女性的喜愛,並且很多人都可以駕馭這種風格。egg裙的優點 egg裙能夠非常完美的的遮住腰腹部的肉肉,達到很明顯的 效果...

底層驅動什麼意思 學Linux到底學什麼?

聽到大家這樣的回答,我真的是很無奈,但也是非常的理解,因為,曾經我對linux的了解程度也是僅限在運維的層面上。但是,有這種概念的朋友實在是太多了,所以我有必要出來給大家科普一下linux的幾個主要的從業方向。linux其實也是乙個大的方向,可以細分為很多小方向。所以很多公司的崗位職責上面寫著要求精...

在一些開源框架中,dist資料夾是什麼意思

全稱是distribution。distribution英 d str bju n 美 d str bj n 發行版 n.分布 分配 在某些框架中,因為開發和發布是的內容或者 形式是不一樣的 比如利用grunt壓縮等等 這時候就需要乙個存放最終發布版本的 這就是dist資料夾的用處。是最終放到伺服器...