(一)egg.js快速人門(mén)吧寺,跑出hello world

一:什么是egg.js?

egg.js是nodejs 的一個(gè)框架,是基于koa框架的基礎(chǔ)上整合的一套上層框架散劫,既定的目錄結(jié)構(gòu)稚机,開(kāi)發(fā)者只需要基于MVC模式,根據(jù)項(xiàng)目規(guī)范的目錄結(jié)構(gòu)获搏,專(zhuān)注于編寫(xiě)相應(yīng)的controller,service,router,view,config配置赖条,以及plugin插件可擴(kuò)展。

二:腳手架快速生成項(xiàng)目

1.系統(tǒng)和環(huán)境:windows + node 8以上

2.腳手架命令,快速初始化生成項(xiàng)目


npm i egg-init -g
egg-init egg-myProject --type=simple
cd egg-myProject
npm i

3.啟動(dòng)項(xiàng)目


npm run dev

4.瀏覽器中打開(kāi)http://127.0.0.1:7001:

image

三:不用腳手架纬乍,逐步搭建碱茁,熟悉項(xiàng)目目錄結(jié)構(gòu)

1.初始化目錄結(jié)構(gòu)


mkdir egg-my-example
cd egg-my-example
npm init

npm init之后一路回車(chē)即可,然后安裝egg egg-bin:


npm i egg --save
npm i egg-bin --save-dev

2.找到package.json文件添加


"scripts": {

    "dev": "egg-bin dev"

  },

3.編寫(xiě)controller文件仿贬,router路由纽竣,添加配置文件config

在項(xiàng)目 egg-my-example 目錄下新建app文件夾,新建controller文件夾茧泪,新建文件home.js

在項(xiàng)目 egg-my-example 目錄下app文件夾新建router.js文件

在項(xiàng)目 egg-my-example 目錄下新建與app同級(jí)的config文件夾蜓氨,(注意:config文件夾跟app同級(jí)目錄),新建config.default.js文件


//app/controllter/home.js

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

class HomeController extends Controller{

    async index(){

        this.ctx.body = "hello world";

    }

}

module.exports = HomeController;


//app/router.js

module.exports = app => {

  const { router, controller } = app;

  router.get('/',controller.home.index);

  router.get('/list',controller.news.list);

}


//config/congif.default.js

exports.keys = '123456790';  //key是自己的cookie信息

整體項(xiàng)目目路結(jié)構(gòu)如下:

image

4.運(yùn)行項(xiàng)目


npm run dev

5.瀏覽器打開(kāi) http://127.0.0.1:7001

image

如此一個(gè)簡(jiǎn)單的hello world就完成了调炬,手動(dòng)新建項(xiàng)目過(guò)程中一定要注意目路結(jié)構(gòu)语盈,egg根據(jù)既定的項(xiàng)目目錄,開(kāi)發(fā)者可以專(zhuān)注編寫(xiě)controller等業(yè)務(wù)代碼缰泡,快速完成項(xiàng)目刀荒。

6.接下來(lái)可以繼續(xù)編寫(xiě)view模板文件
使用 Nunjucks來(lái)渲染,安裝對(duì)應(yīng)的插件 egg-view-nunjucks

npm i egg-view-nunjucks --save

開(kāi)啟插件:(config目錄下新建plugin.js文件)

//config/plugin.js
exports.nunjucks = {
    enable:true,
    package:'egg-view-nunjucks'
}

添加view模板配置

//config/config.default.js
exports.view = {
    defaultViewEngine:'nunjucks',
    mapping:{
        '.tpl':'nunjucks'
    }
}

7.為一個(gè)列表頁(yè)編寫(xiě)模板文件
在app目錄下新建一個(gè)view文件夾棘钞,將所有模板文件放到view下

//app/view/news/list.tpl
<html>
  <head>
    <title>Hacker News</title>
    <link rel="stylesheet" href="/public/css/news.css" />
  </head>
  <body>
    <ul class="news-view view">
      {% for item in list %}
        <li class="item">
          <a href="{{ item.url }}">{{ item.title }}</a>
        </li>
      {% endfor %}
    </ul>
  </body>
</html>

添加controller,router

//app/controller/news.js
const Controller = require('egg').Controller;
class NewsController extends Controller {
   async list() {
    const dataList = {
      list: [
        { id: 1, title: 'this is news 1', url: '/news/1' },
        { id: 2, title: 'this is news 2', url: '/news/2' }
      ]
    };
    await this.ctx.render('news/list.tpl', dataList);
}
module.exports = NewsController;
//app/router.js
module.exports = app => {
   const { router, controller } = app; 
   router.get('/',controller.home.index);
   router.get('/list',controller.news.list);
}

8.瀏覽器中打開(kāi)http://127.0.0.1:7001/list

image.png

參考:https://eggjs.org/zh-cn/intro/quickstart.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缠借,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宜猜,更是在濱河造成了極大的恐慌泼返,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姨拥,死亡現(xiàn)場(chǎng)離奇詭異绅喉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叫乌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)柴罐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人憨奸,你說(shuō)我怎么就攤上這事革屠。” “怎么了排宰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵似芝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我板甘,道長(zhǎng)党瓮,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任盐类,我火速辦了婚禮寞奸,結(jié)果婚禮上痕寓,老公的妹妹穿的比我還像新娘。我一直安慰自己蝇闭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布硬毕。 她就那樣靜靜地躺著呻引,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吐咳。 梳的紋絲不亂的頭發(fā)上逻悠,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音韭脊,去河邊找鬼童谒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沪羔,可吹牛的內(nèi)容都是我干的饥伊。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蔫饰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼琅豆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起篓吁,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤篡诽,失蹤者是張志新(化名)和其女友劉穎忆肾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梁沧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了娜饵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞻惋。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖孩擂,靈堂內(nèi)的尸體忽然破棺而出狼渊,到底是詐尸還是另有隱情,我是刑警寧澤类垦,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布狈邑,位于F島的核電站,受9級(jí)特大地震影響蚤认,放射性物質(zhì)發(fā)生泄漏米苹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一砰琢、第九天 我趴在偏房一處隱蔽的房頂上張望蘸嘶。 院中可真熱鬧良瞧,春花似錦、人聲如沸训唱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)况增。三九已至赞庶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間澳骤,已是汗流浹背歧强。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留为肮,地道東北人摊册。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像颊艳,于是被迫代替她去往敵國(guó)和親茅特。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理籽暇,服務(wù)發(fā)現(xiàn)温治,斷路器,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,334評(píng)論 25 707
  • 原文鏈接:http://www.reibang.com/p/2a9367afe9e7 1510997059(1)....
    懸筆e絕閱讀 5,476評(píng)論 0 0
  • 以前聽(tīng)說(shuō)戒悠,當(dāng)一個(gè)人開(kāi)始回憶過(guò)去時(shí)熬荆,就代表著他老了,至少是心理上绸狐。成年之前卤恳,我一直告誡自己:來(lái)路不可眷戀,千萬(wàn)別回頭...
    初夏清歡閱讀 237評(píng)論 0 0
  • 蒼龍臥河口酣然靜悠悠閱盡百年事不再問(wèn)王侯
    朱小虎XiaohuZhu閱讀 3,863評(píng)論 2 6